home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Information / CSMP Digest / volume 3 / csmp-digest-v3-145 < prev    next >
Text File  |  1996-04-25  |  125KB  |  3,263 lines

  1. C.S.M.P. Digest             Wed, 24 Apr 96       Volume 3 : Issue 145
  2.  
  3. Today's Topics:
  4.  
  5.         Asynch SCSI Disk I-O???
  6.         Can't read more than 2 keys at once!
  7.         Converting a string to floating point
  8.         Files left open
  9.         Free to download stereo renderer (class project)
  10.         How to play a selection of a sound?
  11.         Macintosh Developer Central on WWW
  12.         Network source code-samples?
  13.         New Sprocket downloading info
  14.         OT TCP port reuse problem
  15.         OpenTransport Notifier routines
  16.         So how does DrawSprocket work?
  17.         TCL Page needs feedback.
  18.         What are little GURLs made of?
  19.         Windows vs Dialogs
  20.         [ANN] Macintosh C
  21.         mac INIT loading order
  22.  
  23.  
  24.  
  25. The Comp.Sys.Mac.Programmer Digest is moderated by Francois Pottier
  26. (pottier@clipper.ens.fr).
  27.  
  28. The digest is a collection of article threads from the internet
  29. newsgroups comp.sys.mac.programmer.help, csmp.tools, csmp.misc and
  30. csmp.games. It is designed for people who read news semi-regularly and
  31. want an archive of the discussions.  If you don't know what a
  32. newsgroup is, you probably don't have access to it. Ask your systems
  33. administrator(s) for details. If you don't have access to news, you
  34. may still be able to post messages to the group by using a mail server
  35. like anon.penet.fi (mail help@anon.penet.fi for more information).
  36.  
  37. Each issue of the digest contains one or more sets of articles (called
  38. threads), with each set corresponding to a 'discussion' of a particular
  39. subject.  The articles are not edited; all articles included in this digest
  40. are in their original posted form (as received by our news server at
  41. nef.ens.fr).  Article threads are not added to the digest until the last
  42. article added to the thread is at least two weeks old (this is to ensure that
  43. the thread is dead before adding it to the digest).  Article threads that
  44. consist of only one message are generally not included in the digest.
  45.  
  46. The digest is officially distributed by two means, by email and ftp.
  47.  
  48. If you want to receive the digest by mail, send email to listserv@ens.fr
  49. with no subject and one of the following commands as body:
  50.     help                        Sends you a summary of commands
  51.     subscribe csmp-digest Your Name    Adds you to the mailing list
  52.     signoff csmp-digest            Removes you from the list
  53. Once you have subscribed, you will automatically receive each new
  54. issue as it is created.
  55.  
  56. The official ftp info is ftp://ftp.dartmouth.edu/pub/csmp-digest.
  57. Questions related to the ftp site should be directed to
  58. scott.silver@dartmouth.edu.
  59.  
  60. -------------------------------------------------------
  61.  
  62. >From madole@mills.edu (David Madole)
  63. Subject: Asynch SCSI Disk I-O???
  64. Date: 2 Apr 1996 23:52:00 GMT
  65. Organization: University of California, Berkeley
  66.  
  67. I think I remember reading somewhere recently (in my dreams??) about
  68. asynch file I/O with PB<Blah-de-blah> having become a reality on certain
  69. systems (using a certain SCSI chipset) under 7.5.x.  Is this true, or
  70. WAS I dreaming.
  71.  
  72. Doesn't seem to be true on a friend's 7500/100 under 7.5.2.
  73.  
  74. Can anybody do asynch disk reads on any system at present?  Could 
  75. someone perhaps jog my memory regarding what I was reading?
  76.  
  77. Thanks a lot,
  78.  
  79. Dave Madole
  80.  
  81. +++++++++++++++++++++++++++
  82.  
  83. >From steve@mindvision.com (Steve Kiene)
  84. Date: Wed, 03 Apr 1996 00:22:42 -0600
  85. Organization: MindVision Software
  86.  
  87. In article <4jsej0$8ra@agate.berkeley.edu>, madole@mills.edu wrote:
  88.  
  89. > I think I remember reading somewhere recently (in my dreams??) about
  90. > asynch file I/O with PB<Blah-de-blah> having become a reality on certain
  91. > systems (using a certain SCSI chipset) under 7.5.x.  Is this true, or
  92. > WAS I dreaming.
  93. > Doesn't seem to be true on a friend's 7500/100 under 7.5.2.
  94. > Can anybody do asynch disk reads on any system at present?  Could 
  95. > someone perhaps jog my memory regarding what I was reading?
  96.  
  97. Any machine running SCSI Manager 4.3 can do async i/o to the SCSI device.
  98. This includes all PowerMacs, and I think all 040 machines. Floppies have
  99. supported async i/o for a long time. However, the File System is still
  100. single threaded.
  101.  
  102. I've been doing async stuff for years.
  103.  
  104. Steve Kiene
  105. MindVision Software
  106.  
  107. +++++++++++++++++++++++++++
  108.  
  109. >From rbarris@quicksilver.com (Rob Barris)
  110. Date: Thu, 04 Apr 1996 16:05:54 +0000
  111. Organization: Quicksilver Software, Inc.
  112.  
  113. In article <4jsej0$8ra@agate.berkeley.edu>, madole@mills.edu wrote:
  114.  
  115. > I think I remember reading somewhere recently (in my dreams??) about
  116. > asynch file I/O with PB<Blah-de-blah> having become a reality on certain
  117. > systems (using a certain SCSI chipset) under 7.5.x.  Is this true, or
  118. > WAS I dreaming.
  119.  
  120. Retrospect does it just fine on my 8500, simultaneous disk and tape
  121. activity, far better than it used to be able to do on a Q950. I haven't
  122. written async PBRead stuff by hand yet, merely observed what other
  123. programs are up to.
  124.  
  125. This may be affected by the type of HD driver you have installed. If it's
  126. an Apple driver (or FWB, that's what I have) it should be possible. Show
  127. us the code, give us some more results to look at! ;-)
  128.  
  129. Rob Barris
  130. Quicksilver Software Inc.
  131. rbarris@quicksilver.com
  132. * Opinions expressed not necessarily those of my employer *
  133.  
  134. +++++++++++++++++++++++++++
  135.  
  136. >From jason@crocker.com (Jason Linhart)
  137. Date: Thu, 04 Apr 1996 21:59:32 -0500
  138. Organization: Crocker Communciations (crocker.com)
  139.  
  140. In article <4jsej0$8ra@agate.berkeley.edu>, madole@mills.edu wrote:
  141.  
  142. > I think I remember reading somewhere recently (in my dreams??) about
  143. > asynch file I/O with PB<Blah-de-blah> having become a reality on certain
  144. > systems (using a certain SCSI chipset) under 7.5.x.  Is this true, or
  145. > WAS I dreaming.
  146. > Doesn't seem to be true on a friend's 7500/100 under 7.5.2.
  147.  
  148. The disk driver in 7.5.2 and 7.5.3 for SCSI disks does async disk IO. This
  149. may or may not translate to async IO for your program depending on what
  150. Macintosh model you have, what disk driver, which inits you have loaded,
  151. and which file system calls you use.
  152.  
  153. I have confirmed async IO in some of my programs on a 7500/100 under 7.5.3
  154. with no non-Apple inits. I know that it stops being async when I load my
  155. full set of inits (many, many). I never bothered to trace that down.
  156.  
  157. -- 
  158. - ------------------
  159. JasonLion@minbar.com
  160. Dr. Suess books . . . can be read and enjoyed on several levels. For
  161. example, 'One Fish Two Fish, Red Fish Blue Fish' can be deconstructed
  162. as a searing indictment of the narrow-minded binary counting system.
  163.   -- Peter van der Linden  Expert C Programming, Deep C Secrets
  164.  
  165. +++++++++++++++++++++++++++
  166.  
  167. >From Symantec/Scott Morison <SYMScott@devtools.symantec.com>
  168. Date: Wed, 03 Apr 1996 11:53:18 +0000
  169. Organization: Symantec Corporation
  170.  
  171. David Madole wrote:
  172. > I think I remember reading somewhere recently (in my dreams??) about
  173. > asynch file I/O with PB<Blah-de-blah> having become a reality on certain
  174. > systems (using a certain SCSI chipset) under 7.5.x.  Is this true, or
  175. > WAS I dreaming.
  176. > Doesn't seem to be true on a friend's 7500/100 under 7.5.2.
  177. > Can anybody do asynch disk reads on any system at present?  Could
  178. > someone perhaps jog my memory regarding what I was reading?
  179.  
  180. While is is true that the new SCSI manager supports async i/o and low-level file 
  181. manager calls can be used effectively to impliment async i/o, the File Manager 
  182. itself is still single threaded even in the async mode and therefore reentrant  
  183. async file transfer calls are really not allowed in 7.5.x.
  184.  
  185. >From what I have been able to tell, Copland is targeted for some multithreadable 
  186. asynchronous i/o File Manager behaviour and Gershwin should be even more complete 
  187. (and, oh yes, the Mac *WILL* still be alive and well at its reception... :)
  188.  
  189. There are a ton of cool work arounds and tricks on this (and every other 
  190. concievable programming issue under the sun ... uh, opps! *under the Mac*) in 
  191. c.s.m.p archives:
  192.  
  193. http://www.ambrosiasw.com/alt.sources.mac/archives.html
  194.  
  195. - Scott Morison, Syamntec Development Tools Technical Support naked beekeeper
  196.  
  197. - ----
  198. For further information on this or any other C/C++/Pascal/Java issue, please feel
  199. free to write to Symantec's Development Tools tech support zen masters:
  200. support@devtools.symantec.com,
  201. or give us a ring at : 541/465-8470
  202.  
  203. ---------------------------
  204.  
  205. >From ttak@ellis.uchicago.edu (Spectreman Takeuchi)
  206. Subject: Can't read more than 2 keys at once!
  207. Date: Tue, 19 Mar 1996 22:58:23 GMT
  208. Organization: University of Chicago -- Academic Computing Services
  209.  
  210. I'm writing a game, and I can't read more than two keys off the
  211. keyboard at once (using GetKeys).  This is a problem, a big problem,
  212. for me because I want to make my game for 2 players.  that would mean
  213. sometimes up to six keys held down simultaneously.  I've also tried
  214. using GetNextEvent, but autokey doesn't work too hot with games.
  215.  
  216. Thanskk for the help!
  217. -- 
  218. Kenji Takeuchi    ______/---------_______             4-LINE SIGNATURE FILE
  219.      ____-------     /               -----_
  220.  __--            /enji     /akeuchi------    KENJI'S TOLL-FREE HOTLINE:
  221.    -____________---/---------/-----_____  etakeuc@vertex.ucls.uchicago.edu
  222.  
  223. +++++++++++++++++++++++++++
  224.  
  225. >From David T Mcwherter <dtm+@andrew.cmu.edu>
  226. Date: Tue, 19 Mar 1996 22:45:40 -0500
  227. Organization: Freshman, MCS Undeclared, Carnegie Mellon, Pittsburgh, PA
  228.  
  229. >>
  230. I'm writing a game, and I can't read more than two keys off the
  231. keyboard at once (using GetKeys).  This is a problem, a big problem,
  232. for me because I want to make my game for 2 players.  that would mean
  233. sometimes up to six keys held down simultaneously.  I've also tried
  234. using GetNextEvent, but autokey doesn't work too hot with games.
  235. <<
  236.  
  237.  
  238. As far as I know, the Mac can only detect two "real" keys down at a
  239. time.  It can detect modifier keys, such as shift, option, control, and
  240. command in addition to those two keys at a time.  So, if you want to
  241. have two players, have one use the mouse, or have one use modifier keys
  242. to control their movements.
  243.  
  244. There may be a workaround to this, but I don't know of it.
  245.  
  246. -David McWherter
  247. dtm+@andrew.cmu.edu
  248. http://abduction.res.cmu.edu
  249.  
  250. I want to die peacefully, in my sleep, like my grandfather, not
  251. screaming, terrified, like his passengers.  
  252.  
  253. +++++++++++++++++++++++++++
  254.  
  255. >From Caligula@cris.com (Stephen W. Evans)
  256. Date: Wed, 20 Mar 1996 15:07:57 -0600
  257. Organization: Me:Myself:And I
  258.  
  259. In article <4lHrxYq00iWQ8GY_gL@andrew.cmu.edu>, David T Mcwherter
  260. <dtm+@andrew.cmu.edu> wrote:
  261.  
  262. >>>
  263. >I'm writing a game, and I can't read more than two keys off the
  264. >keyboard at once (using GetKeys).  This is a problem, a big problem,
  265. >for me because I want to make my game for 2 players.  that would mean
  266. >sometimes up to six keys held down simultaneously.  I've also tried
  267. >using GetNextEvent, but autokey doesn't work too hot with games.
  268.  
  269. >As far as I know, the Mac can only detect two "real" keys down at a
  270. >time.  It can detect modifier keys, such as shift, option, control, and
  271. >command in addition to those two keys at a time.  So, if you want to
  272. >have two players, have one use the mouse, or have one use modifier keys
  273. >to control their movements.
  274.  
  275. Keep a key state table.  Set your eventMask to get both keydown and
  276. keyup events.  Read the state table instead of the keyboard and change
  277. the state table in response to events.  This can make your app aware
  278. of any number of actual keys held down.  Note that for "bare" modifier
  279. keys you will still need to read the keyboard state itself.
  280.  
  281. - - Steve
  282. Stephen W. Evans              clgl - Caligula - WarBirds
  283. ICI Host/Mac Programmer       4548 - Caligula - Air Warrior
  284. caligula@cris.com             Friends don't let friends do DOS.
  285. PGP public key available by finger evans@rex.pfc.mit.edu
  286.  
  287. +++++++++++++++++++++++++++
  288.  
  289. >From ray@cinenet.net (RayMV)
  290. Date: Wed, 20 Mar 1996 21:20:52 -0800
  291. Organization: Cinenet Communications,Internet Access,Los Angeles;310-301-4500
  292.  
  293.  
  294.  
  295. > I'm writing a game, and I can't read more than two keys off the
  296. > keyboard at once (using GetKeys).  This is a problem, a big problem,
  297. > for me because I want to make my game for 2 players.  that would mean
  298. > sometimes up to six keys held down simultaneously.  I've also tried
  299. > using GetNextEvent, but autokey doesn't work too hot with games.
  300. > Thanskk for the help!
  301.  
  302.  
  303. Try something like this: (taken pretty much from Think Reference)
  304.  
  305. /**************************************************************/
  306. #define kLeftArrow      0x7B
  307. #define kRightArrow     0x7C
  308. #define kDownArrow      0x7D
  309. #define kUpArrow        0x7E
  310.  
  311. unsigned char     gKeyMap[16];
  312.  
  313.  
  314. /**************************************************************/
  315. short 
  316. KeyIsPressed(unsigned short k )
  317. {
  318.    // k =  any keyboard scan code, 0-127
  319.    
  320.    return (( gKeyMap[k>>3] >> (k & 7)) & 1);
  321. }
  322.  
  323.  
  324. /**************************************************************/
  325. main()
  326. {
  327.    GetKeys( (unsigned long *) gKeyMap);
  328.  
  329.    if(KeyIsPressed(kLeftArrow))
  330.       left_pressed();
  331.    if(KeyIsPressed(kRightArrow))
  332.       right_pressed();
  333.    if(KeyIsPressed(kUpArrow))
  334.       up_pressed();
  335.    if(KeyIsPressed(kDownArrow))
  336.       down_pressed();
  337. }
  338.  
  339. +++++++++++++++++++++++++++
  340.  
  341. >From blob@ccnet.com
  342. Date: Wed, 20 Mar 1996 21:22:29 -0800
  343. Organization: CCnet Communications (510-988-7140 guest)
  344.  
  345. In article <DoJEA1.MrL@midway.uchicago.edu>, ttak@midway.uchicago.edu wrote:
  346.  
  347. > I'm writing a game, and I can't read more than two keys off the
  348. > keyboard at once (using GetKeys).  This is a problem, a big problem,
  349. > for me because I want to make my game for 2 players.  that would mean
  350. > sometimes up to six keys held down simultaneously.  I've also tried
  351. > using GetNextEvent, but autokey doesn't work too hot with games.
  352.  
  353. I believe the adb driver doesn't post status on more than 2 keys at once. 
  354. Pete Gontier wrote a program called ADB KeySpy which was one of the most
  355. recent developer CDs; perhaps that will help.
  356.  
  357. +++++++++++++++++++++++++++
  358.  
  359. >From Ivan Vecerina <ivan.vecerina@etumed.unil.ch>
  360. Date: 21 Mar 1996 12:23:26 GMT
  361. Organization: University of Lausanne CH (Switzerland)
  362.  
  363. Note that apple has published a snippet which does the right thing and 
  364. implements a non-alzheimer GetKeys() ...
  365.  
  366. Sorry I can't remember the exact source ... must have been on a DevCD ... 
  367. probably in a Game toolkit ...
  368.  
  369.  
  370. +++++++++++++++++++++++++++
  371.  
  372. >From phaedrus@halcyon.com (Mark Phaedrus)
  373. Date: Thu, 21 Mar 1996 16:30:46 -0700
  374. Organization: Lycanthropes Anonymous
  375.  
  376. In article <4lHrxYq00iWQ8GY_gL@andrew.cmu.edu>, David T Mcwherter
  377. <dtm+@andrew.cmu.edu> wrote:
  378.  
  379. >>>
  380. >I'm writing a game, and I can't read more than two keys off the
  381. >keyboard at once (using GetKeys).  This is a problem, a big problem,
  382. >for me because I want to make my game for 2 players.  that would mean
  383. >sometimes up to six keys held down simultaneously.  I've also tried
  384. >using GetNextEvent, but autokey doesn't work too hot with games.
  385. ><<
  386. >
  387. >
  388. >As far as I know, the Mac can only detect two "real" keys down at a
  389. >time.  It can detect modifier keys, such as shift, option, control, and
  390. >command in addition to those two keys at a time.  So, if you want to
  391. >have two players, have one use the mouse, or have one use modifier keys
  392. >to control their movements.
  393. >
  394. >There may be a workaround to this, but I don't know of it.
  395.  
  396.      Here we go again...
  397.      This is not a Macintosh hardware limitation, or a system software
  398. limitation.  This is a keyboard limitation.  In theory, it would be
  399. possible to create a keyboard with infinite rollover--one that could still
  400. detect a key being pressed and released even if all the other keys were
  401. already pressed.  But it would be very expensive, so nobody does it. 
  402. "2-key rollover" (successfully read any two keys, plus the modifier keys)
  403. is what Apple suggests, to allow for Command-Option-P-R and similar
  404. keypresses.  But some keyboards (particularly name-brand Apple keyboards)
  405. can handle more than this, while others (particularly the throwaway
  406. third-party keyboards) sometimes can't even handle two keys.  Furthermore,
  407. on any given keyboard, it's very unlikely that the rollover will really be
  408. absolute this way (in other words, "any two keypresses are okay, but the
  409. third keypress always gets lost"); in practice it's likely to depend on
  410. the particular keys that are pressed.  The simplest way to find out how
  411. your keyboard works is to pull up the Key Caps DA, start pressing keys,
  412. and see what gets displayed.  On most Apple keyboards, you're likely to
  413. find that you can successfully have at least seven keys pressed at once,
  414. if you pick the right keys to press; you may also find combinations of as
  415. few as three or four keys that won't register simultaneously.
  416.      Also, not all keyboards really allow all the modifier keys to be
  417. pressed either.  For example, I ran into one third-party keyboard that
  418. could only produce Command-Option-P-R successfully if it was the _left_
  419. Command and the _right_ Option key that were pressed... any other
  420. combination, and it would drop the P or the R.
  421.      If the keyboard won't register a certain combination of keys, no
  422. amount of clever keyboard-reading will work around this.  If you want to
  423. support lots of people banging around a Macintosh keyboard, the best way
  424. to do that is to support multiple keyboards.  Failing that, about the only
  425. thing you can do is to make the keystrokes user-configurable, and
  426. encourage the user to play around with Key Caps to find combinations that
  427. work--or to get a better keyboard. :-)
  428.  
  429. -- 
  430. \o\ If you're interested in books/stories with transformation themes,\o\
  431.  \o\please try <URL:http://www.halcyon.com/phaedrus/Menu.html>, or    \o\
  432.  /o/anonymous-ftp to ftp.halcyon.com in /local/phaedrus/translist.    /o/
  433. /o/ Comments and submissions to this list are always welcome.        /o/
  434.  
  435. +++++++++++++++++++++++++++
  436.  
  437. >From elliott@mpi-muelheim.mpg.de (Mark Elliott)
  438. Date: Fri, 22 Mar 1996 16:10:54 +0100
  439. Organization: Max-Planck-Institut f. Kohlenforsch. Muelheim
  440.  
  441. In article <Caligula-2003961507570001@199.3.119.175>, Caligula@cris.com
  442. (Stephen W. Evans) wrote:
  443.  
  444. > In article <4lHrxYq00iWQ8GY_gL@andrew.cmu.edu>, David T Mcwherter
  445. > <dtm+@andrew.cmu.edu> wrote:
  446. > >>>
  447. > >I'm writing a game, and I can't read more than two keys off the
  448. > >keyboard at once (using GetKeys).  This is a problem, a big problem,
  449. > >for me because I want to make my game for 2 players.  that would mean
  450. > >sometimes up to six keys held down simultaneously.  I've also tried
  451. > >using GetNextEvent, but autokey doesn't work too hot with games.
  452. > >As far as I know, the Mac can only detect two "real" keys down at a
  453. > >time.  It can detect modifier keys, such as shift, option, control, and
  454. > >command in addition to those two keys at a time.  So, if you want to
  455. > >have two players, have one use the mouse, or have one use modifier keys
  456. > >to control their movements.
  457. > Keep a key state table.  Set your eventMask to get both keydown and
  458. > keyup events.  Read the state table instead of the keyboard and change
  459. > the state table in response to events.  This can make your app aware
  460. > of any number of actual keys held down.  Note that for "bare" modifier
  461. > keys you will still need to read the keyboard state itself.
  462.  
  463. This won't work. If you hold down 1 key, then press a second, then a 3rd,
  464. when you press the 3rd key, the OS will report a KeyUp event for the first
  465. key, even if it is held down.
  466.  
  467. (at least I have heard this so many times that I tend to believe it)
  468.  
  469. Best way to get around this limit is to use as many modifier keys as
  470. possible - these are not subject to the 2 key limit.
  471.  
  472. (although I have been using GetKeys() to find more than 2 keys at a time.
  473. I think it depends on the mac and keyboard. I don't need to bother about
  474. this, so I don't!)
  475.  
  476. Mark
  477.  
  478. - ------------------------------------------------------------------
  479. Mark C Elliott                           elliott@mpi-muelheim.mpg.de
  480. Max-Planck-Institut                      voice: (+49) 208 306 2429
  481. Fuer Kohlenforschung
  482. Muelheim, Germany
  483. - ------------------------------------------------------------------
  484.  
  485. +++++++++++++++++++++++++++
  486.  
  487. >From oo@oo.com (lisa beaufort)
  488. Date: 24 Mar 1996 04:35:45 GMT
  489. Organization: ooo
  490.  
  491. In article <blob-2003962122290001@h108-5-111.ccnet.com>, blob@ccnet.com wrote:
  492.  
  493. > In article <DoJEA1.MrL@midway.uchicago.edu>, ttak@midway.uchicago.edu wrote:
  494. > > I'm writing a game, and I can't read more than two keys off the
  495. > > keyboard at once (using GetKeys).  This is a problem, a big problem,
  496. > > for me because I want to make my game for 2 players.  that would mean
  497. > > sometimes up to six keys held down simultaneously.  I've also tried
  498. > > using GetNextEvent, but autokey doesn't work too hot with games.
  499. I think I know how to do it in Assembly, If you want I can post the code.
  500. c. lisa b.
  501.  
  502. +++++++++++++++++++++++++++
  503.  
  504. >From John Moreno <phenix@interpath.com>
  505. Date: Sun, 24 Mar 1996 19:57:53 -0500
  506. Organization: Interpath -- Providing Internet access to North Carolina
  507.  
  508. David T Mcwherter wrote:
  509. > >>
  510. > I'm writing a game, and I can't read more than two keys off the
  511. > keyboard at once (using GetKeys).  This is a problem, a big problem,
  512. > for me because I want to make my game for 2 players.  that would mean
  513. > sometimes up to six keys held down simultaneously.  I've also tried
  514. > using GetNextEvent, but autokey doesn't work too hot with games.
  515. > <<
  516. > As far as I know, the Mac can only detect two "real" keys down at a
  517. > time.  It can detect modifier keys, such as shift, option, control, and
  518. > command in addition to those two keys at a time.  So, if you want to
  519. > have two players, have one use the mouse, or have one use modifier keys
  520. > to control their movements.
  521. > There may be a workaround to this, but I don't know of it.
  522.  
  523.  
  524. Well, I don't know what it is but there is obviously a way to do this.  
  525. I would recommend that he take MacsBug to KeyCaps DA, I just tested it, 
  526. and it will show up to 10 keys down with no problem - don't know about 
  527. more, I ran out of fingers.
  528.  
  529. John Moreno
  530.  
  531. +++++++++++++++++++++++++++
  532.  
  533. >From ttak@ellis.uchicago.edu (Spectreman Takeuchi)
  534. Date: Sun, 24 Mar 1996 23:33:39 GMT
  535. Organization: The University of Chicago
  536.  
  537. In article <oo-2403960035460001@ts2-d44.hfx.atcon.com>,
  538. lisa beaufort <oo@oo.com> wrote:
  539. >In article <blob-2003962122290001@h108-5-111.ccnet.com>, blob@ccnet.com wrote:
  540. >
  541. >> In article <DoJEA1.MrL@midway.uchicago.edu>, ttak@midway.uchicago.edu wrote:
  542. >> 
  543. >> > I'm writing a game, and I can't read more than two keys off the
  544. >> > keyboard at once (using GetKeys).  This is a problem, a big problem,
  545. >> > for me because I want to make my game for 2 players.  that would mean
  546. >> > sometimes up to six keys held down simultaneously.  I've also tried
  547. >> > using GetNextEvent, but autokey doesn't work too hot with games.
  548. >> 
  549. >I think I know how to do it in Assembly, If you want I can post the code.
  550. >c. lisa b.
  551.  
  552.  
  553.  
  554. -- 
  555. Kenji Takeuchi    ______/---------_______             4-LINE SIGNATURE FILE
  556.      ____-------     /               -----_
  557.  __--            /enji     /akeuchi------    KENJI'S TOLL-FREE HOTLINE:
  558.    -____________---/---------/-----_____  etakeuc@vertex.ucls.uchicago.edu
  559.  
  560. +++++++++++++++++++++++++++
  561.  
  562. >From "Andrew C. Plotkin" <erkyrath+@CMU.EDU>
  563. Date: Sun, 24 Mar 1996 23:53:04 -0500
  564. Organization: Senior, Math/Computer Science, Carnegie Mellon, Pittsburgh, PA
  565.  
  566. John Moreno <phenix@interpath.com> writes:
  567. > > As far as I know, the Mac can only detect two "real" keys down at a
  568. > > time.  It can detect modifier keys, such as shift, option, control, and
  569. > > command in addition to those two keys at a time.  So, if you want to
  570. > > have two players, have one use the mouse, or have one use modifier keys
  571. > > to control their movements.
  572. > Well, I don't know what it is but there is obviously a way to do this.  
  573. > I would recommend that he take MacsBug to KeyCaps DA, I just tested it, 
  574. > and it will show up to 10 keys down with no problem - don't know about 
  575. > more, I ran out of fingers.
  576.  
  577. Wrongo. I just tried it too. While it does appear to work at first, it
  578. starts screwing up almost immediately. Raising one finger causes
  579. several keys to un-light, and then it stops accepting new key-downs
  580. until you raise all but two or three. 
  581.  
  582. More experimentation -- it varies a lot with which keys it is. Keys in
  583. the same vertical or horizontal row tend to interfere with each other,
  584. which makes sense considering how keyboard circuitry tends to work.
  585. For example, KeyCaps can't sense more than two of Q, E, C.
  586.  
  587. --Z
  588.  
  589. "And Aholibamah bare Jeush, and Jaalam, and Korah: these were the borogoves..."
  590.  
  591. +++++++++++++++++++++++++++
  592.  
  593. >From y-tony@bu.edu (Yan Lee)
  594. Date: 25 Mar 1996 15:59:51 GMT
  595. Organization: Boston University
  596.  
  597. Spectreman Takeuchi (ttak@ellis.uchicago.edu) wrote:
  598. : I'm writing a game, and I can't read more than two keys off the
  599. : keyboard at once (using GetKeys).  This is a problem, a big problem,
  600. : for me because I want to make my game for 2 players.  that would mean
  601. : sometimes up to six keys held down simultaneously.  I've also tried
  602. : using GetNextEvent, but autokey doesn't work too hot with games.
  603.  
  604. : Thanskk for the help!
  605.  
  606.  
  607. I think this is a limitation of ABS port.  However, the maximum keys you 
  608. can read is actually 4.  You can read 2 modifier keys (like shift, 
  609. control, or command) and 2 regular keys.  You could probably mention this 
  610. to the user when there are two players.  The game Asterax does this.
  611.  
  612.  
  613. Later
  614. Tony
  615.  
  616.  
  617. +++++++++++++++++++++++++++
  618.  
  619. >From Testing (Testing)
  620. Date: Mon, 25 Mar 1996 11:39:05 -0500
  621. Organization: Testing
  622.  
  623. In article <3155EF91.6659@interpath.com>, John Moreno
  624. <phenix@interpath.com> wrote:
  625.  
  626.  > David T Mcwherter wrote:
  627.  > > 
  628.  > > >>
  629.  > > I'm writing a game, and I can't read more than two keys off the
  630.  > > keyboard at once (using GetKeys).  This is a problem, a big problem,
  631.  > > for me because I want to make my game for 2 players.  that would mean
  632.  > > sometimes up to six keys held down simultaneously.  I've also tried
  633.  > > using GetNextEvent, but autokey doesn't work too hot with games.
  634.  > > <<
  635.  > > 
  636.  > > As far as I know, the Mac can only detect two "real" keys down at a
  637.  > > time.  It can detect modifier keys, such as shift, option, control, and
  638.  > > command in addition to those two keys at a time.  So, if you want to
  639.  > > have two players, have one use the mouse, or have one use modifier keys
  640.  > > to control their movements.
  641.  > > 
  642.  > > There may be a workaround to this, but I don't know of it.
  643.  > 
  644.  > 
  645.  > Well, I don't know what it is but there is obviously a way to do this.  
  646.  > I would recommend that he take MacsBug to KeyCaps DA, I just tested it, 
  647.  > and it will show up to 10 keys down with no problem - don't know about 
  648.  > more, I ran out of fingers.
  649.  
  650.  
  651. I just tried the same thing and Key Caps only shows 2 keys at once. Any
  652. presses after
  653. the first two are completely ignored.
  654.  
  655. +++++++++++++++++++++++++++
  656.  
  657. >From John Moreno <phenix@interpath.com>
  658. Date: Tue, 26 Mar 1996 01:05:11 -0500
  659. Organization: Interpath -- Providing Internet access to North Carolina
  660.  
  661. Andrew C. Plotkin wrote:
  662. > John Moreno <phenix@interpath.com> writes:
  663. > > > As far as I know, the Mac can only detect two "real" keys down at a
  664. > > > time.  It can detect modifier keys, such as shift, option, control, and
  665. > > > command in addition to those two keys at a time.  So, if you want to
  666. > > > have two players, have one use the mouse, or have one use modifier keys
  667. > > > to control their movements.
  668. > >
  669. > > Well, I don't know what it is but there is obviously a way to do this.
  670. > > I would recommend that he take MacsBug to KeyCaps DA, I just tested it,
  671. > > and it will show up to 10 keys down with no problem - don't know about
  672. > > more, I ran out of fingers.
  673. > Wrongo. I just tried it too. While it does appear to work at first, it
  674. > starts screwing up almost immediately. Raising one finger causes
  675. > several keys to un-light, and then it stops accepting new key-downs
  676. > until you raise all but two or three.
  677. > More experimentation -- it varies a lot with which keys it is. Keys in
  678. > the same vertical or horizontal row tend to interfere with each other,
  679. > which makes sense considering how keyboard circuitry tends to work.
  680. > For example, KeyCaps can't sense more than two of Q, E, C.
  681. > --Z
  682. > "And Aholibamah bare Jeush, and Jaalam, and Korah: these were the borogoves..."
  683.  
  684. I'm sorry but you seem to be mainly right, possibly absolutely.  QEC is 
  685. a problem and so is PI,  ... you get PI,/ the only problem that I 
  686. couldn't duplicate is the un-lighting of several keys then not accepting 
  687. new key-downs.  BUT it still looks like it might be a good starting 
  688. point unless someone has all of the answers at their fingertips and is 
  689. willing to share.
  690.  
  691. John Moreno - who will admit when he's wrong on if he can't blame it on 
  692. someone else.  He did it, not me.
  693.  
  694.  
  695. +++++++++++++++++++++++++++
  696.  
  697. >From mxmora@mxmdesigns.com (Matthew Xavier Mora)
  698. Date: 27 Mar 1996 07:27:40 GMT
  699. Organization: MXM Designs™
  700.  
  701. In article <DoJEHC.35@midway.uchicago.edu>, ttak@midway.uchicago.edu wrote:
  702.  
  703. > I'm writing a game, and I can't read more than two keys off the
  704. > keyboard at once (using GetKeys).  This is a problem, a big problem,
  705. > for me because I want to make my game for 2 players.  that would mean
  706. > sometimes up to six keys held down simultaneously.  I've also tried
  707. > using GetNextEvent, but autokey doesn't work too hot with games.
  708.  
  709.  
  710. Its a hardware limitation in the design of the keyboards. It is possible
  711. to detect more than two keys down if you go to the ADB driver level. The
  712. problem is that you don't know which combinations of keys will actually
  713. work. It depends on how the key matrix is wired. I was able to detect
  714. about 5 non modifier keys on an extended keyboard when hooked into the adb
  715. service routine. (you have to hunt around and find which keys are not
  716. ganged together)
  717.  
  718. Pete Gontier has posted sample code on the developer CD that fixes GetKeys
  719. failure of handling two keyboards. (the Adjustable keyboard is actually 3
  720. adb devices and GetKeys is broken with that keyboard). From his sample
  721. code you can see how to hook into the adb to get called when the keyboard
  722. state changes.
  723.  
  724.  
  725. Good Luck,
  726.  
  727.  
  728. Xavier (who has hacked on the ADB for too long)
  729.  
  730. +++++++++++++++++++++++++++
  731.  
  732. >From skevill@tartarus.uwa.edu.au (Scott Kevill)
  733. Date: Thu, 28 Mar 1996 22:53:34 +0800
  734. Organization: The University of Western Australia
  735.  
  736. In article <4j6ftn$6js@news.bu.edu>, y-tony@bu.edu (Yan Lee) wrote:
  737.  
  738. : Spectreman Takeuchi (ttak@ellis.uchicago.edu) wrote:
  739. : : I'm writing a game, and I can't read more than two keys off the
  740. : : keyboard at once (using GetKeys).  This is a problem, a big problem,
  741. : : for me because I want to make my game for 2 players.  that would mean
  742. : : sometimes up to six keys held down simultaneously.  I've also tried
  743. : : using GetNextEvent, but autokey doesn't work too hot with games.
  744. : : Thanskk for the help!
  745. : I think this is a limitation of ABS port.  However, the maximum keys you 
  746. : can read is actually 4.  You can read 2 modifier keys (like shift, 
  747. : control, or command) and 2 regular keys.  You could probably mention this 
  748. : to the user when there are two players.  The game Asterax does this.
  749. : Later
  750. : Tony
  751.  
  752. The limitation is 2 normal keys and *ANY* number of modifier keys (caps,
  753. shift, control, option, command). Possibly the Power-On key as well, but
  754. that seems to work in weird ways. I think it might also be possible
  755. override the default behaviour in order to differentiate between the two
  756. shift keys, two control keys, etc on either side of the keyboard as well.
  757. I forget where I read that last bit... Inside Mac V Event Manager?
  758.  
  759. Hope this helps,
  760.  
  761. Scott Kevill.
  762. skevill@tartarus.uwa.edu.au
  763.  
  764.  
  765. +++++++++++++++++++++++++++
  766.  
  767. >From pevensen@inlink.com (Peter T. Evensen)
  768. Date: Thu, 11 Apr 1996 14:02:40 -0500
  769. Organization: Siboney Learning Group
  770.  
  771. In article <4j9j47$l91@server05.icaen.uiowa.edu>, macpd@icaen.uiowa.edu
  772. (Liquefy root user) wrote:
  773.  
  774. > John Moreno (phenix@interpath.com) wrote:
  775. > : Andrew C. Plotkin wrote:
  776. > : > John Moreno <phenix@interpath.com> writes:
  777. > : > > > As far as I know, the Mac can only detect two "real" keys down at a
  778. > : > > > time.  It can detect modifier keys, such as shift, option,
  779. control, and
  780. > : > > > command in addition to those two keys at a time.  So, if you want to
  781. > : > > > have two players, have one use the mouse, or have one use
  782. modifier keys
  783. > : > > > to control their movements.
  784. > : > >
  785. > : > > Well, I don't know what it is but there is obviously a way to do this.
  786. > : > > I would recommend that he take MacsBug to KeyCaps DA, I just tested it,
  787. > : > > and it will show up to 10 keys down with no problem - don't know about
  788. > : > > more, I ran out of fingers.
  789. > : > 
  790. > : > Wrongo. I just tried it too. While it does appear to work at first, it
  791. > : > starts screwing up almost immediately. Raising one finger causes
  792. > : > several keys to un-light, and then it stops accepting new key-downs
  793. > : > until you raise all but two or three.
  794. > : > 
  795. > : I'm sorry but you seem to be mainly right, possibly absolutely.  QEC is 
  796. > : a problem and so is PI,  ... you get PI,/ the only problem that I 
  797. > : couldn't duplicate is the un-lighting of several keys then not accepting 
  798. > : new key-downs.  BUT it still looks like it might be a good starting 
  799. > : point unless someone has all of the answers at their fingertips and is 
  800. > : willing to share.
  801. > There is also the issue of which keyboards, the good Apple keyboard has 7 key
  802. > rollover, the cheap one has 2 key rollover. A friend had to buy a new 
  803. > keyboard to be competitive in Marathon...
  804. >    Brett Davis
  805.  
  806. I discovered that the Mac Toolbox appears to stop sending autoKey events
  807. if you hold down a key, press a second one, and then release the first
  808. key.  What I did to get around problem is if I didn't receive any keyDown
  809. or autoKey events, I called GetKeys() and checked the bit corresponding to
  810. the key code of the last key I got a keyDown event for.
  811.  
  812. Apple shipped ADB Key Spy 2 on their March 1996 Reference Library (part of
  813. the technical mailings).  It is billed as 
  814.  
  815. "a replacement for the GetKeys routine by maiting a key map reflecting the
  816. state of each keyboard attached to the Macintosh computer through the
  817. Apple Desktop Bus.  The package include soure dode.  Inaddition to solving
  818. the problem with the adjustable keybaord, this package is now a
  819. demonstration of several techniques, including...using the ADB API,
  820. 'patching' ADB service routines..." 
  821.  
  822. I haven't looked at it myself, but it looks like it might apply to this
  823. problem.  It is probably available on Apple's FTP site, if you dont' have
  824. the Reference Library CD.
  825.  
  826. -- 
  827. Peter T. Evensen
  828. pevensen@inlink.com
  829.  
  830. ---------------------------
  831.  
  832. >From dunham@pensee.com (David Dunham)
  833. Subject: Converting a string to floating point
  834. Date: Thu, 04 Apr 1996 18:47:40 -0800
  835. Organization: Pensee Corporation
  836.  
  837. I attempted to solve this problem once before, without a whole lot of luck.
  838.  
  839. Is there a Toolbox routine that works on both PowerPC and 68K, which
  840. converts an ASCII string to a floating point number? The last time I
  841. looked at this, it was hard to find a routine that existed on both
  842. platforms. I ended up parsing the string and converting the two halves of
  843. the decimal point separately, which I'd like to avoid.
  844.  
  845. What I want is something like
  846.  
  847. double_t StringToDouble(Str255* aString);
  848.  
  849. David Dunham   Pensee Corporation   dunham@pensee.com
  850. Voice/Fax: 206 783 7404             http://www.pensee.com/dunham/
  851.     "I say we should listen to the customers and give them what they want."
  852.     "What they want is better products for free." --Scott Adams
  853.  
  854. +++++++++++++++++++++++++++
  855.  
  856. >From mhteas@btech.com (Malcolm H. Teas)
  857. Date: 5 Apr 1996 13:15:35 GMT
  858. Organization: Blaze Technology, Inc.
  859.  
  860. In article <dunham-0404961847400001@feather.pensee.com>
  861. dunham@pensee.com (David Dunham) writes:
  862.  
  863. > Is there a Toolbox routine that works on both PowerPC and 68K, which
  864. > converts an ASCII string to a floating point number?
  865.  
  866. How about StringToExtended() in the TextUtilities manager?  I'm
  867. reasonably sure that this exists on both mac platforms.  It's not quite
  868. as convienent as StringToNum(), but it should do the job.
  869.  
  870. Malcolm  H. Teas                E-Mail: mhteas@btech.com
  871. Blaze Technology, Inc.          Telephone: 512/502-9552
  872. PO Box 200279                   Fax: 512/502-9554
  873. Austin, TX USA 78720-0279       WWW: http://www.btech.com/
  874.    ** A Macintosh software development services company  **
  875.  
  876. +++++++++++++++++++++++++++
  877.  
  878. >From jwbaxter@olympus.net (John W. Baxter)
  879. Date: Fri, 05 Apr 1996 16:07:07 -0800
  880. Organization: Internet for the Olympic Peninsula
  881.  
  882. In article <dunham-0404961847400001@feather.pensee.com>, dunham@pensee.com
  883. (David Dunham) wrote:
  884.  
  885. >I attempted to solve this problem once before, without a whole lot of luck.
  886. >
  887. >Is there a Toolbox routine that works on both PowerPC and 68K, which
  888. >converts an ASCII string to a floating point number? The last time I
  889. >looked at this, it was hard to find a routine that existed on both
  890. >platforms. I ended up parsing the string and converting the two halves of
  891. >the decimal point separately, which I'd like to avoid.
  892. >
  893. >What I want is something like
  894. >
  895. >double_t StringToDouble(Str255* aString);
  896.  
  897. The non-trivial but quite powerful routines needed are described in IM:
  898. Text (right where one would expect them ;-)).  Pages 5-35 to 5-42 for the
  899. exhausing (er, exhaustive) description, and 5-94 to 5-99 for the routine
  900. descriptions.
  901.  
  902. Unfortunately, what comes out of the routines is a SANE 80-bit Extended
  903. value, which on PPC you need to convert to double_t (double) and on 68K
  904. with FPU code generation you need to convert to double_t (the 96-bit long
  905. double).
  906.  
  907. Probably best to write what you gave the prototype for above, and hide the
  908. gory floating format conversions inside that.
  909.  
  910. Note that there's a format record to build before doing the conversion,
  911. and either throw away or not afterwards (not is more efficient...throw
  912. away simplifies dealing with users who switch script systems on you or
  913. otherwise need the format record rebuilt).  The same format record works
  914. for conversions both directions.
  915.  
  916. In C++ one might write a class whose constructor takes in the format
  917. string and creates the format record, and which has routines for doing the
  918. conversions using that format record.
  919.  
  920. These routines will do more than you want, including handling input (with
  921. a suitable format record) like
  922.  
  923.    2 million 247 thousand 862.913
  924.  
  925.    --John
  926.  
  927. -- 
  928.   The primary cause of problems is solutions.
  929. John W. Baxter    Port Ludlow, WA, USA     jwbaxter@olympus.net
  930.  
  931. +++++++++++++++++++++++++++
  932.  
  933. >From dsample@synapse.net (Don Sample)
  934. Date: Mon, 08 Apr 1996 01:27:06 -0400
  935. Organization: DASoftware
  936.  
  937. In article <dunham-0404961847400001@feather.pensee.com>, dunham@pensee.com
  938. (David Dunham) wrote:
  939.  
  940. >I attempted to solve this problem once before, without a whole lot of luck.
  941. >
  942. >Is there a Toolbox routine that works on both PowerPC and 68K, which
  943. >converts an ASCII string to a floating point number? The last time I
  944. >looked at this, it was hard to find a routine that existed on both
  945. >platforms. I ended up parsing the string and converting the two halves of
  946. >the decimal point separately, which I'd like to avoid.
  947. >
  948. >What I want is something like
  949. >
  950. >double_t StringToDouble(Str255* aString);
  951. >
  952. >David Dunham   Pensee Corporation   dunham@pensee.com
  953.  
  954. If you don't need to worry about non-english number formats there are the
  955. ANSI C functions atof() or strtod().
  956.  
  957. -- 
  958. Don Sample                          |
  959. dsample@bix.com                     |    Quando Omni Flunkus Moritati
  960. dsample@synapse.net                 |
  961. http://www.synapse.net/~dsample/    | 
  962.  
  963. +++++++++++++++++++++++++++
  964.  
  965. >From ghd@ccnet.com (Gregory Dow)
  966. Date: Thu, 11 Apr 1996 13:54:47 -0800
  967. Organization: CCnet Communications (510-988-7140 guest)
  968.  
  969. In article <dunham-0404961847400001@feather.pensee.com>
  970. dunham@pensee.com (David Dunham) writes:
  971.  
  972. > Is there a Toolbox routine that works on both PowerPC and 68K, which
  973. > converts an ASCII string to a floating point number?
  974.  
  975. The PowerPlant LString class has routines for converting between
  976. strings and floating point numbers. It uses the str2dec() and
  977. dec2num() routines which are declared in Apple's Universal Headers
  978. in the file <fp.h> and defined in Apple's MathLib library.
  979.  
  980. -- Greg Dow
  981. -- metrowerks
  982.  
  983. ---------------------------
  984.  
  985. >From Tom Messick <tommessick@earthlink.net>
  986. Subject: Files left open
  987. Date: 5 Apr 1996 04:43:39 GMT
  988. Organization: Earthlink Network, Inc.
  989.  
  990. Is there any way to find open files on an HFS volume or a way to close all files
  991. without knowing the reference numbers?  I am working on a 2-CD game and the os
  992. sometimes asks for the first CD after I eject it.  I suspect that open files
  993. have prevented the volume from dismounting.
  994.  
  995. --
  996. Tom Messick - InterWeave Entertainment
  997. tommessick@screaming.com
  998. (818) 883-1920
  999.       883-9650 (fax)
  1000.  
  1001.  
  1002.  
  1003. +++++++++++++++++++++++++++
  1004.  
  1005. >From jumplong@aol.com (Jump Long)
  1006. Date: 7 Apr 1996 04:10:44 -0400
  1007. Organization: America Online, Inc. (1-800-827-6364)
  1008.  
  1009. Tom Messick wrote:
  1010. >Is there any way to find open files on an HFS volume or a way to
  1011. >close all files without knowing the reference numbers?  I am
  1012. >working on a 2-CD game and the os sometimes asks for the first
  1013. >CD after I eject it.  I suspect that open files have prevented
  1014. >the volume from dismounting.
  1015.  
  1016. Ejecting a disk doesn't unmount it - it just puts it offline. The next
  1017. time anything makes a File Manager call to that volume that might require
  1018. disk access, the File Manager is going to ask for the volume back. 
  1019.  
  1020. The solution is close all files you have open on the volume and then
  1021. Unmount the volume. If others have files open on the volume (not counting
  1022. the catalog, extents overflow and Desktop Manager files - the OS takes
  1023. care of those), you can't unmount the volume and you'll get a fBsyErr
  1024. error.
  1025.  
  1026. If you're trying to eject the disk and then unmount the volume, you've got
  1027. the order of calls backwards. Get MoreFiles
  1028. <ftp://members.aol.com/JumpLong/MoreFiles_1.4.2.sea.hqx> and use the
  1029. UnmountAndEject routine. It does everything in the right order.
  1030.  
  1031. Oh yeah, drop into MacsBug and use the FILE dcmd to see what files are
  1032. open on your volumes.
  1033.  
  1034. - Jim Luther
  1035.  
  1036. +++++++++++++++++++++++++++
  1037.  
  1038. >From devon@apple.com (Devon Hubbard)
  1039. Date: Tue, 09 Apr 1996 01:30:26 -0700
  1040. Organization: Apple Computer, Inc.
  1041.  
  1042. In article <4k28dr$da3@uruguay.it.earthlink.net>, Tom Messick
  1043. <tommessick@earthlink.net> wrote:
  1044.  
  1045. > Is there any way to find open files on an HFS volume or a way to close
  1046. all files
  1047. > without knowing the reference numbers?  I am working on a 2-CD game and the os
  1048. > sometimes asks for the first CD after I eject it.  I suspect that open files
  1049. > have prevented the volume from dismounting.
  1050.  
  1051. I'm not sure if you're looking for a programmatic way or just a way to
  1052. check for open files during debugging/testing to find out what's going
  1053. with your CD.  If you have Macsbug, enter the command 'files' and press
  1054. return.  You will get a list of open files and the volumes they are opened
  1055. from.  If you are using Jasik, take a look at the 'Task & File Info'
  1056. command to get at the same kind of list.
  1057.  
  1058. Hope that helps.
  1059.  
  1060. dEVoN
  1061.  
  1062. ---------------------------
  1063.  
  1064. >From mbishop@ren.us.itd.umich.edu (Michael J Bishop)
  1065. Subject: Free to download stereo renderer (class project)
  1066. Date: 11 Apr 1996 00:39:52 GMT
  1067. Organization: University of Michigan
  1068.  
  1069. Hi,
  1070.  
  1071. I have created a 3D Stereo (red & blue) Renderer based on code from 
  1072. "Engines of Creation" and put it on my web page.
  1073.  
  1074. I spent a lot of time matching the colors to minimize the "ghost effect" 
  1075. so the stereo effect is really very good. Try it out and let me know what
  1076. you think!
  1077.  
  1078. Requires:
  1079.  
  1080.   - PowerMac
  1081.   - 256 color mode.
  1082.   - user who doesn't mind looking silly wearing RB glasses :)
  1083.  
  1084.  
  1085. http://www-personal.umich.edu/~mbishop/3D.stereo.renderer.sit.hqx
  1086.  
  1087.  
  1088. --
  1089. -- Michael
  1090.  
  1091. mbishop@umich.edu                                   mbishop.work@umich.edu 
  1092. 313.213.0484                        http://www-personal.umich.edu/~mbishop   
  1093. - -----------------------------------------------------------------------
  1094. "A 'program' which could produce brilliant music would have to wander
  1095. around the world on its own, fighting its way through the maze of life and
  1096. feeling every moment of it." -- Douglas Hofstader, "Godel, Escher, and Bach"
  1097.  
  1098. ---------------------------
  1099.  
  1100. >From marcus.filipsson@ling.lu.se (Marcus Filipsson)
  1101. Subject: How to play a selection of a sound?
  1102. Date: Thu, 04 Apr 1996 10:20:13 +0200
  1103. Organization: Dept of Linguistics
  1104.  
  1105. I am trying to write a small sound program. I record sound to a resource
  1106. or file (both work fine) , and display it. The user then selects a portion
  1107. with the mouse, and he wants to listen only to this selection. I know what
  1108. byte to start and where to end, but how do I play only this portion, using
  1109. high or low-level routines?
  1110.  
  1111. Any help on this matter would be appreciated!
  1112.  
  1113. Marcus Filipsson
  1114.  
  1115. ========================================================
  1116. Marcus Filipsson
  1117. Research Engineer     
  1118. Email: marcus.filipsson@ling.lu.se
  1119. WWW: http://www.ling.lu.se/persons/Marcus/
  1120. Tel: +46-(0)46-2228449
  1121. Fax: +46-(0)46-2224210
  1122. Lund University, Dept. of Linguistics
  1123. Helgonabacken 12, S-223 62  Lund, SWEDEN
  1124. ========================================================
  1125.  
  1126. +++++++++++++++++++++++++++
  1127.  
  1128. >From David Jackson Shields <digidave@vvstudios.com>
  1129. Date: Fri, 05 Apr 1996 01:33:34 -0800
  1130. Organization: Vanguard Vision Studios, San Francisco, CA
  1131.  
  1132. Marcus Filipsson wrote:
  1133. > I am trying to write a small sound program. I record sound to a resource
  1134. > or file (both work fine) , and display it. The user then selects a portion
  1135. > with the mouse, and he wants to listen only to this selection. I know what
  1136. > byte to start and where to end, but how do I play only this portion, using
  1137. > high or low-level routines?
  1138.  
  1139. High-level routines are not set up for playing portions of a file or 
  1140. resource...they play the whole thing. So that leaves low-level routines.
  1141.  
  1142. If you are going to want to avoid hiccups if other streams occur 
  1143. simultaneously, you may want to look at SndPlayDoubleBuffer(). You set 
  1144. up two buffers to "prime the pump", and then while one buffer is being 
  1145. played by the sound card, you fill the other buffer from your file data. 
  1146. This gives you control over just what data will be played from within 
  1147. the sound. 
  1148.  
  1149. To deal with double buffering, you have to fill out header structures, 
  1150. and deal with asynchronous completion routines...but it's a good excuse 
  1151. to learn about this stuff.
  1152.  
  1153. There are code examples in the old Inside Mac Volume VI, Chapter 22 on 
  1154. setting up and using double buffers.
  1155.  
  1156. Have fun...
  1157.  
  1158. --Dave
  1159.  
  1160. ---------------------------
  1161.  
  1162. >From yan@darwin.bu.edu (Y. Tony Lee)
  1163. Subject: Macintosh Developer Central on WWW
  1164. Date: Sun, 07 Apr 1996 20:51:57 -0500
  1165. Organization: Boston University
  1166.  
  1167. Hello,
  1168.    I put up a www page to help macintosh programmers.  You can check it out
  1169. at:
  1170.  
  1171. http://med-amsa.bu.edu/Pharmacology/pharm.people/Lee/MacProg.html
  1172.  
  1173. Please tell me your opinions.  
  1174.  
  1175. Thanks,
  1176. Tony
  1177.  
  1178. ---------------------------
  1179.  
  1180. >From umsmith@mcs.drexel.edu (M. Scott Smith)
  1181. Subject: Network source code-samples?
  1182. Date: Thu, 04 Apr 1996 07:29:06 -0500
  1183. Organization: Drexel University
  1184.  
  1185.  
  1186. Hello!
  1187.  
  1188.    I'm in search of some simple code that demonstrates how to
  1189. use MacTCP to interact with the network.  Specifically, I'd like
  1190. to be able to send data to a machine (i.e., telnet) and receive
  1191. it.
  1192.  
  1193.    I came across the source code for NCSA Telnet, and it does
  1194. exactly what I want, but it does quite a bit more.  So the source
  1195. code is a little overwhelming, and I'd rather start with something
  1196. simple.  Can anyone point me in the direction of sample code that
  1197. serves as a "simple telnet"?
  1198.  
  1199.    The project I'm working on won't need to present a user with
  1200. an interactive telnet session.  Rather, the program will make requests
  1201. via telnet to receive html pages.  So this seems like it should be
  1202. fairly simple, I've just never dealt with MacTCP before and am
  1203. having trouble finding a good place to start learning.
  1204.  
  1205. Thanks in advance for any pointers!
  1206.  
  1207. - Scott
  1208.  
  1209. - ----------------------------------------------------------------------------
  1210. M. Scott Smith      Computer Science Major, Math Minor; Drexel University
  1211.                     Macintosh / Sun Developer; President, MCS Society
  1212.  
  1213.                     http://www.mcs.drexel.edu/~umsmith
  1214.                     umsmith@mcs.drexel.edu    home #: (215) 243-0735
  1215.  
  1216. +++++++++++++++++++++++++++
  1217.  
  1218. >From zobkiw@triplesoft.com (Joe Zobkiw)
  1219. Date: Thu, 04 Apr 1996 18:38:20 -0500
  1220. Organization: TripleSoft Inc.
  1221.  
  1222. In article <umsmith-0404960729060001@philly32.voicenet.com>,
  1223. umsmith@mcs.drexel.edu (M. Scott Smith) wrote:
  1224.  
  1225. >   I'm in search of some simple code that demonstrates how to
  1226. >use MacTCP to interact with the network.  Specifically, I'd like
  1227. >to be able to send data to a machine (i.e., telnet) and receive
  1228. >it.
  1229. >
  1230. >   I came across the source code for NCSA Telnet, and it does
  1231. >exactly what I want, but it does quite a bit more.  So the source
  1232. >code is a little overwhelming, and I'd rather start with something
  1233. >simple.  Can anyone point me in the direction of sample code that
  1234. >serves as a "simple telnet"?
  1235. >
  1236. >   The project I'm working on won't need to present a user with
  1237. >an interactive telnet session.  Rather, the program will make requests
  1238. >via telnet to receive html pages.  So this seems like it should be
  1239. >fairly simple, I've just never dealt with MacTCP before and am
  1240. >having trouble finding a good place to start learning.
  1241.  
  1242. Grand Unified Socket Interface does this:
  1243.  
  1244. <ftp://ftp.metrowerks.com//pub/updates/CW8/CWGUSI.sit.hqx>
  1245.  
  1246. Also the PowerPlant Networking classes do as well. These can begotten from
  1247. the latest CodeWarrior CD. These classes also come with a Telnet sample
  1248. application. It is very basic but may show you some techniques that you
  1249. can use to build your own.
  1250.  
  1251.  
  1252. Joe Zobkiw                       <mailto:zobkiw@triplesoft.com>
  1253. TripleSoft Inc.                    <http://www.triplesoft.com/>
  1254. PO Box 30774 Raleigh, NC 27622         (919) 872-0916 voice/fax
  1255. - -------------------------------------------------------------
  1256. Specializing in Macintosh Software Development & WWW Publishing
  1257. - -------------------------------------------------------------
  1258. Macintosh Programmers --> <http://www.triplesoft.com/fragment/>
  1259.  
  1260.  
  1261. +++++++++++++++++++++++++++
  1262.  
  1263. >From mtrent@msn.fullfeed.com (Michael Trent)
  1264. Date: 9 Apr 1996 04:25:55 GMT
  1265. Organization: FullFeed Madison (newsmaster@msn.fullfeed.com)
  1266.  
  1267. > >   I'm in search of some simple code that demonstrates how to
  1268. > >use MacTCP to interact with the network.  Specifically, I'd like
  1269. > >to be able to send data to a machine (i.e., telnet) and receive
  1270. > >it.
  1271. > Grand Unified Socket Interface does this:
  1272.  
  1273. Simple Sockets also does this. It isn't nearly as powerful as GUSI, but it
  1274. isn't nearly as complicated either. Simple Sockets was written to be just
  1275. that: a simple, understandable socket library. It can be found at:
  1276.  
  1277. <ftp://mirrors.aol.com/pub/info-mac/dev/lib/simple-sockets-11.hqx>
  1278.  
  1279. or on the Apprentice Source Code CDROM (vols 3 and 4), and elsehwere. 
  1280.  
  1281. Personally, I find the source code for Newswatcher to be tremendously
  1282. helpful, though some amount of digging through John's code might be
  1283. required. (I don't say that to discourage, one can learn a lot from
  1284. digging through John's code!)
  1285.  
  1286. <ftp://ftp.acns.nwu.edu/pub/newswatcher/>
  1287.  
  1288. -- 
  1289. M.S.  : A crippling disease, for which there is no cure.
  1290. MS(tm): A crippling disease, for which there is no cure.
  1291.  
  1292.  
  1293. ---------------------------
  1294.  
  1295. >From jasonp@red.seas.upenn.edu (Jason S Pareti)
  1296. Subject: New Sprocket downloading info
  1297. Date: 4 Apr 1996 08:10:41 GMT
  1298. Organization: University of Pennsylvania
  1299.  
  1300. I'm posting a message which Michelle Wyner posted on the Semper Fi 
  1301. mailing list today, discussing the corrupted Game Sprockets.  (hope you 
  1302. don't mind Michelle!)
  1303.  
  1304. - ---
  1305.  
  1306. There are now 3 ways to get the sprockets stuff.
  1307.  
  1308. The PDF file has been fixed, the Sprockets SDK itself is going to be 
  1309. broken up into components, making for smaller downloads (I'm doing that 
  1310. as I type this too), and the Web pages will be updated to reflect that.
  1311.  
  1312. If you don't want to wait for the SDK to be broken up, here's where you 
  1313. can go..
  1314.  
  1315. <ftp://ftpdev.info.apple.com/Developer_Services/Games> - I'm told this 
  1316. has been fixed, and it looks ok now.
  1317.  
  1318. <ftp://ftp.info.apple.com/Apple.Support.Area/Developer_Services/Games>
  1319.  
  1320. or from the Web, you can even do
  1321.  
  1322. <http://cgi.info.apple.com/cgi-bin/lister-pl?Apple.Support.Area/Developer_S
  1323. ervices/Games>
  1324. note however that on this, the correct version of the docs may not have 
  1325. been mirrored out yet (if the site that comes up is ftp.info, then it 
  1326. has).
  1327.  
  1328. Any other questions/problems, please take up with me.  
  1329.  
  1330. --Michelle Wyner
  1331.   Apple Developer Press
  1332.   Developer Services Jedi Webmaster
  1333.   "Use the Web, Luke!"
  1334.  
  1335.  
  1336. - ---
  1337.  
  1338. Cheers,
  1339. Jason
  1340.  
  1341.   +-----------------------------------------------------------------+
  1342.   | Jason Pareti                           3910 Irving St., Box 344 |
  1343.   | Student, Mac Programmer                High Rise South, Box 344 |
  1344.   | Apple Computer Student Rep.              Philadelphia, PA 19104 |
  1345.   +-----------------------------------------------------------------+
  1346.   | Net: jasonp@eniac.seas.upenn.edu       Voice:  (215) 417-8005   |
  1347.   | AOL: AbbotSW                             Fax:  (215) 417-8005   |
  1348.   | WWW: homepage.seas.upenn.edu/~jasonp/                           |
  1349.   +-----------------------------------------------------------------+
  1350.  
  1351.  
  1352. +++++++++++++++++++++++++++
  1353.  
  1354. >From jasonp@red.seas.upenn.edu (Jason S Pareti)
  1355. Date: 4 Apr 1996 22:30:07 GMT
  1356. Organization: University of Pennsylvania
  1357.  
  1358. There is now an official e-mail address for the game sprockets:
  1359. sprockets@adr.apple.com
  1360.  
  1361. I assume that any questions, comments, or techinal problems should be 
  1362. addressed there.
  1363.  
  1364. Cheers,
  1365. Jason
  1366.  
  1367. +++++++++++++++++++++++++++
  1368.  
  1369. >From karm@bga.com (Kevin Armstrong)
  1370. Date: Thu, 04 Apr 1996 13:59:23 -0600
  1371. Organization: Lion Entertainment, Inc.
  1372.  
  1373. In article <4k0061$hoo@netnews.upenn.edu>, jasonp@red.seas.upenn.edu
  1374. (Jason S Pareti) wrote:
  1375.  
  1376. >I'm posting a message which Michelle Wyner posted on the Semper Fi 
  1377. >mailing list today, discussing the corrupted Game Sprockets.  (hope you 
  1378. >don't mind Michelle!)
  1379. >
  1380. >-----
  1381. >
  1382. >There are now 3 ways to get the sprockets stuff.
  1383. >
  1384. >The PDF file has been fixed, the Sprockets SDK itself is going to be 
  1385. >broken up into components, making for smaller downloads (I'm doing that 
  1386. >as I type this too), and the Web pages will be updated to reflect that.
  1387. >
  1388. >If you don't want to wait for the SDK to be broken up, here's where you 
  1389. >can go..
  1390. >
  1391. ><ftp://ftpdev.info.apple.com/Developer_Services/Games> - I'm told this 
  1392. >has been fixed, and it looks ok now.
  1393. >
  1394. ><ftp://ftp.info.apple.com/Apple.Support.Area/Developer_Services/Games>
  1395. >
  1396. >or from the Web, you can even do
  1397. >
  1398. ><http://cgi.info.apple.com/cgi-bin/lister-pl?Apple.Support.Area/Developer_S
  1399. >ervices/Games>
  1400. >note however that on this, the correct version of the docs may not have 
  1401. >been mirrored out yet (if the site that comes up is ftp.info, then it 
  1402. >has).
  1403. >
  1404. >Any other questions/problems, please take up with me.  
  1405. >
  1406. >--Michelle Wyner
  1407. >  Apple Developer Press
  1408. >  Developer Services Jedi Webmaster
  1409. >  "Use the Web, Luke!"
  1410. >
  1411. >
  1412. >-----
  1413. >
  1414. >Cheers,
  1415. >Jason
  1416.  
  1417. The pdf in the docs file is indeed fixed, but the DrawSprocketLib is still
  1418. not a valid PEF file.  The other Sprocket Libraries are.  So again, we
  1419. wait to try this stuff out.  At least we can read about what it is suppose
  1420. to do now.
  1421.  
  1422. Kevin Armstrong
  1423. Lion Entertainment, Inc.
  1424.  
  1425. +++++++++++++++++++++++++++
  1426.  
  1427. >From karm@bga.com (Kevin Armstrong)
  1428. Date: Thu, 04 Apr 1996 23:10:53 -0600
  1429. Organization: Lion Entertainment, Inc.
  1430.  
  1431. Well, I downloaded a working version of the draw sprocket lib and now I
  1432. get to play. =)
  1433.  
  1434. Oh, I got it from the ftpdev.info.apple.com site.  Sorry, no full URL at
  1435. this time.  Besides, if you've been trying to get it, you know where it is
  1436. at. =)
  1437.  
  1438. Well, time to install QuickDraw3D.
  1439.  
  1440. Kevin Armstrong
  1441. Lion Entertainment, Inc.
  1442.  
  1443. +++++++++++++++++++++++++++
  1444.  
  1445. >From bwanga@cats.ucsc.edu (Timothy A. Seufert)
  1446. Date: Sat, 06 Apr 1996 18:28:34 -0800
  1447. Organization: Evil Geniuses For A Better Tomorrow
  1448.  
  1449. In article <karm-0404961359230001@news3.realtime.net>, karm@bga.com (Kevin
  1450. Armstrong) wrote:
  1451.  
  1452. >The pdf in the docs file is indeed fixed, but the DrawSprocketLib is still
  1453. >not a valid PEF file.  The other Sprocket Libraries are.  So again, we
  1454. >wait to try this stuff out.  At least we can read about what it is suppose
  1455. >to do now.
  1456.  
  1457. Download the standalone DrawSprocket archive - it has a good copy of
  1458. DrawSprocketLib.  After copying that over the corrupt version, I had no
  1459. problem running any of the Sprocket test programs.
  1460.  
  1461. +-----------------------------------------------------------+
  1462. |Tim Seufert, bwanga@cats.ucsc.edu | UselessWastedSpace(tm) |
  1463. | "I never give them hell. I just tell the truth, and they  |
  1464. |  think it is hell."  -Harry S Truman                      |
  1465. +-----------------------------------------------------------+
  1466.  
  1467. ---------------------------
  1468.  
  1469. >From checker@netcom.com (Chris Hecker)
  1470. Subject: OT TCP port reuse problem
  1471. Date: Sun, 7 Apr 1996 23:29:37 GMT
  1472. Organization: NETCOM On-line Communication Services (408 261-4700 guest)
  1473.  
  1474. I'm trying to learn OpenTransport TCP programming, but I'm running into
  1475. a problem with one of the samples.  If I run the TCP Catch sample it
  1476. will recieve a packet from my other machine (a non-mac), but if I try
  1477. to run it again on the same port it won't work.  The way in which is
  1478. fails is weird, though.  The AsyncOpenEndpoint, the Bind, and the
  1479. Listen all return successfully, but the listen returns instantly,
  1480. before the other machine has tried to attach.  Needless to say, I never
  1481. get any data on this socket. It fails with a -3155 on the Accept after
  1482. the listen.  If I call GetEndpointState it returns T_UNBND, and if I
  1483. call Bind again it returns -3154, which is kOTNoAddressErr.  I'm
  1484. passing the same stuff to Bind that I did when it worked, so I don't
  1485. understand what the problem is.  It seems like the previous run is
  1486. leaving the port open or something, but I don't know how to prevent it
  1487. from doing this (I thought OT was supposed to clean this stuff up). 
  1488. These samples aren't the greatest.
  1489.  
  1490. Would the OT debug binaries help out here?  I'd assume so, but I don't
  1491. know where to get them.  I downloaded the SDK from apple's ftp site
  1492. (seeding, I think).
  1493.  
  1494. Chris
  1495.  
  1496.  
  1497. +++++++++++++++++++++++++++
  1498.  
  1499. >From checker@netcom.com (Chris Hecker)
  1500. Date: Tue, 9 Apr 1996 05:44:58 GMT
  1501. Organization: NETCOM On-line Communication Services (408 261-4700 guest)
  1502.  
  1503. >a problem with one of the samples.  If I run the TCP Catch sample it
  1504. >will recieve a packet from my other machine (a non-mac), but if I try
  1505. >to run it again on the same port it won't work.
  1506. >understand what the problem is.  It seems like the previous run is
  1507. >leaving the port open or something, but I don't know how to prevent it
  1508. >from doing this (I thought OT was supposed to clean this stuff up). 
  1509. >These samples aren't the greatest.
  1510.  
  1511. I'm commenting on my own message, but just in case anyone cares, the
  1512. problem is that I (really the TCP Catch sample) send an
  1513. SndOrderlyDisconnect, but the other app wasn't replying with an orderly
  1514. disconnect, it was just hanging up.  The sample then sent an
  1515. RcvOrderlyDisconnect, which failed, and it shut down the endpoint.  I
  1516. put a SndDisconnect in there to clear the endpoint state from OUTREL to
  1517. IDLE, and then I can use the port next time.  I'd think OpenTransport
  1518. should do this when my app closes the provider, but what do I know?
  1519.  
  1520. Chris
  1521.  
  1522.  
  1523.  
  1524.  
  1525.  
  1526. +++++++++++++++++++++++++++
  1527.  
  1528. >From zobkiw@triplesoft.com (Joe Zobkiw)
  1529. Date: Tue, 09 Apr 1996 21:52:25 -0400
  1530. Organization: TripleSoft Inc.
  1531.  
  1532. In article <checkerDpIMLD.263@netcom.com>, checker@netcom.com (Chris
  1533. Hecker) wrote:
  1534.  
  1535. >I'm trying to learn OpenTransport TCP programming, but I'm running into
  1536. >a problem with one of the samples.  If I run the TCP Catch sample it
  1537. >will recieve a packet from my other machine (a non-mac), but if I try
  1538. >to run it again on the same port it won't work.  The way in which is
  1539. >fails is weird, though.  The AsyncOpenEndpoint, the Bind, and the
  1540. >Listen all return successfully, but the listen returns instantly,
  1541. >before the other machine has tried to attach.  Needless to say, I never
  1542. >get any data on this socket. It fails with a -3155 on the Accept after
  1543. >the listen.  If I call GetEndpointState it returns T_UNBND, and if I
  1544. >call Bind again it returns -3154, which is kOTNoAddressErr.  I'm
  1545. >passing the same stuff to Bind that I did when it worked, so I don't
  1546. >understand what the problem is.  It seems like the previous run is
  1547. >leaving the port open or something, but I don't know how to prevent it
  1548. >from doing this (I thought OT was supposed to clean this stuff up). 
  1549. >These samples aren't the greatest.
  1550. >
  1551. >Would the OT debug binaries help out here?  I'd assume so, but I don't
  1552. >know where to get them.  I downloaded the SDK from apple's ftp site
  1553. >(seeding, I think).
  1554.  
  1555. I think this is going to become the most asked OT question... :)
  1556.  
  1557. This has to do with OT "reserving" the port after a connection for a
  1558. period of two minutes. The thinking is that after a connection is made on
  1559. the port, then disconnects, if another application used the same port it
  1560. might possibly still receive data from the remote end who still might be
  1561. communicating with the port. Two minutes is long enough to ensure that
  1562. most (all) packets would have timed out by then. You can use the
  1563. OptionManagement function to change this "feature" of OT.
  1564.  
  1565. Hope this helps.
  1566.  
  1567.  
  1568. Joe Zobkiw                                     TripleSoft Inc.
  1569. <mailto:zobkiw@triplesoft.com>   PO Box 30774 Raleigh NC 27622
  1570. <http://www.triplesoft.com/>          (919) 872-0916 voice/fax
  1571.                                  
  1572. - - Macintosh Software Development and Internet Publishing ---
  1573.  
  1574. Macintosh Programmers -> <http://www.triplesoft.com/fragment/>
  1575.  
  1576. ---------------------------
  1577.  
  1578. >From David T Mcwherter <dtm+@andrew.cmu.edu>
  1579. Subject: OpenTransport Notifier routines
  1580. Date: Sat,  6 Apr 1996 08:40:02 -0500
  1581. Organization: Freshman, Mathematics, Carnegie Mellon, Pittsburgh, PA
  1582.  
  1583. I just started programming with Opentransport, and just noticed that all
  1584. of the notifier routines that you can designate are ProcPtrs, not UPP's.
  1585.  I cannot even find UPP's defined in the .h files like they usually are.
  1586.  I noted that the docs say that OT assumes the procptr is compiled for
  1587. the same architecture as the architecture that called the OT routine
  1588. which gives OT the notifier procptr.  So, is it safe to use normal
  1589. ProcPtr's to do Notifier routines?
  1590.  
  1591. -David McWherter
  1592. dtm+@andrew.cmu.edu
  1593. http://abduction.res.cmu.edu
  1594.  
  1595. I want to die peacefully, in my sleep, like my grandfather, not
  1596. screaming, terrified, like his passengers.  
  1597.  
  1598. +++++++++++++++++++++++++++
  1599.  
  1600. >From scouten@metrowerks.com (Eric Scouten)
  1601. Date: Sat, 06 Apr 1996 11:17:10 -0600
  1602. Organization: Metrowerks, Inc.
  1603.  
  1604. In article <MlNbEm_00iWXA1ELQQ@andrew.cmu.edu>, David T Mcwherter
  1605. <dtm+@andrew.cmu.edu> wrote:
  1606.  
  1607. > I just started programming with Opentransport, and just noticed that all
  1608. > of the notifier routines that you can designate are ProcPtrs, not UPP's.
  1609. >  I cannot even find UPP's defined in the .h files like they usually are.
  1610. >  I noted that the docs say that OT assumes the procptr is compiled for
  1611. > the same architecture as the architecture that called the OT routine
  1612. > which gives OT the notifier procptr.  So, is it safe to use normal
  1613. > ProcPtr's to do Notifier routines?
  1614.  
  1615. This is basically correct.
  1616.  
  1617. BTW, Apple has since decided that programmers should avoid using the
  1618. native OT interfaces on 68K builds. Not an absolute requirement, but OT is
  1619. less well tested on 68K.
  1620.  
  1621. -es
  1622.  
  1623. __________________________________________________________________________
  1624. Eric Scouten                                       Constructor Constructor
  1625. scouten@metrowerks.com                                     Metrowerks, Inc.
  1626.  
  1627. Buying my car was easy, but this... this is SHOES.
  1628.    -Saturn advertisement
  1629.  
  1630. +++++++++++++++++++++++++++
  1631.  
  1632. >From jason@crocker.com (Jason Linhart)
  1633. Date: Sun, 07 Apr 1996 01:27:19 -0500
  1634. Organization: Crocker Communciations (crocker.com)
  1635.  
  1636. In article <MlNbEm_00iWXA1ELQQ@andrew.cmu.edu>, David T Mcwherter
  1637. <dtm+@andrew.cmu.edu> wrote:
  1638.  
  1639. > I just started programming with Opentransport, and just noticed that all
  1640. > of the notifier routines that you can designate are ProcPtrs, not UPP's.
  1641. >  I cannot even find UPP's defined in the .h files like they usually are.
  1642. >  I noted that the docs say that OT assumes the procptr is compiled for
  1643. > the same architecture as the architecture that called the OT routine
  1644. > which gives OT the notifier procptr.  So, is it safe to use normal
  1645. > ProcPtr's to do Notifier routines?
  1646.  
  1647. Normal ProcPtrs work just fine. The rule is that all OT code must be for
  1648. the same processor
  1649. that you are actualy running on. You can't emulate 68K code that calls OT
  1650. on a PPC. Thus
  1651. no universal proc pointers.
  1652.  
  1653. -- 
  1654. - ------------------
  1655. JasonLion@minbar.com
  1656. Dr. Suess books . . . can be read and enjoyed on several levels. For
  1657. example, 'One Fish Two Fish, Red Fish Blue Fish' can be deconstructed
  1658. as a searing indictment of the narrow-minded binary counting system.
  1659.   -- Peter van der Linden  Expert C Programming, Deep C Secrets
  1660.  
  1661. +++++++++++++++++++++++++++
  1662.  
  1663. >From quinn@quinn.echidna.id.au (Quinn "The Eskimo!")
  1664. Date: Tue, 09 Apr 1996 10:14:04 -0800
  1665. Organization: Late Night Silly Software
  1666.  
  1667. In article <MlNbEm_00iWXA1ELQQ@andrew.cmu.edu>, David T Mcwherter
  1668. <dtm+@andrew.cmu.edu> wrote:
  1669.  
  1670. >I just started programming with Opentransport, and just noticed that all
  1671. >of the notifier routines that you can designate are ProcPtrs, not UPP's.
  1672. > I cannot even find UPP's defined in the .h files like they usually are.
  1673. > I noted that the docs say that OT assumes the procptr is compiled for
  1674. >the same architecture as the architecture that called the OT routine
  1675. >which gives OT the notifier procptr.  So, is it safe to use normal
  1676. >ProcPtr's to do Notifier routines?
  1677.  
  1678. No.  The only safe use of notifiers is to point them at code that's
  1679. compiled in the native architecture of the endpoint.  [The native
  1680. architecture of the endpoint is the ISA of the client that called
  1681. OpenEndpoint.]  OT does not CallUniversalProc when calling your notifier,
  1682. it just jumps to it.
  1683.  
  1684. If your endpoint needs access to non-native code, you will have install a
  1685. native endpoint that does the MixedModeMagic.
  1686.  
  1687. Share and Enjoy.
  1688. --
  1689. Quinn "The Eskimo!"       <http://www.quinn.echidna.id.au/Quinn/WWW/>
  1690.         "Too late, your imperfection has exceeded acceptable
  1691.                   error levels. You are terminated!"  
  1692.  
  1693. +++++++++++++++++++++++++++
  1694.  
  1695. >From phamilton@macromedia.com (Paul Hamilton)
  1696. Date: Tue, 09 Apr 1996 13:12:46 -0800
  1697. Organization: Macromedia
  1698.  
  1699. In article <quinn-0904961014040001@17.128.202.29>,
  1700. quinn@quinn.echidna.id.au (Quinn "The Eskimo!") wrote:
  1701.  
  1702. > In article <MlNbEm_00iWXA1ELQQ@andrew.cmu.edu>, David T Mcwherter
  1703. > <dtm+@andrew.cmu.edu> wrote:
  1704. > No.  The only safe use of notifiers is to point them at code that's
  1705. > compiled in the native architecture of the endpoint.  [The native
  1706. > architecture of the endpoint is the ISA of the client that called
  1707. > OpenEndpoint.]  OT does not CallUniversalProc when calling your notifier,
  1708. > it just jumps to it.
  1709. > If your endpoint needs access to non-native code, you will have install a
  1710. > native endpoint that does the MixedModeMagic.
  1711.  
  1712. Yeah,
  1713.  
  1714. But you could just setup a RoutineDescriptor with your code (whatever
  1715. architecture) and pass that. If OT just does a jump to the code, then it
  1716. will jump to MixedModeMagic inside the upp and everything will be fine.
  1717.  
  1718. Right?
  1719.  
  1720. Paul.
  1721. -- 
  1722. Paul Hamilton
  1723. Authorware Senior Software Engineer
  1724. Macromedia
  1725.  
  1726. +++++++++++++++++++++++++++
  1727.  
  1728. >From David T Mcwherter <dtm+@andrew.cmu.edu>
  1729. Date: Tue,  9 Apr 1996 18:46:10 -0400
  1730. Organization: Freshman, Mathematics, Carnegie Mellon, Pittsburgh, PA
  1731.  
  1732. >>
  1733. > In article <MlNbEm_00iWXA1ELQQ@andrew.cmu.edu>, David T Mcwherter
  1734. > <dtm+@andrew.cmu.edu> wrote:
  1735. > No.  The only safe use of notifiers is to point them at code that's
  1736. > compiled in the native architecture of the endpoint.  [The native
  1737. > architecture of the endpoint is the ISA of the client that called
  1738. > OpenEndpoint.]  OT does not CallUniversalProc when calling your notifier,
  1739. > it just jumps to it.
  1740. > If your endpoint needs access to non-native code, you will have install a
  1741. > native endpoint that does the MixedModeMagic.
  1742.  
  1743. Yeah,
  1744.  
  1745. But you could just setup a RoutineDescriptor with your code (whatever
  1746. architecture) and pass that. If OT just does a jump to the code, then it
  1747. will jump to MixedModeMagic inside the upp and everything will be fine.
  1748.  
  1749. Right?
  1750.  
  1751. <<
  1752.  
  1753. Thanks for the help!  I would, however, have to say no to giving a UPP
  1754. (routine descriptor) instead of a ProcPtr.  I believe that would be a
  1755. sure way to cause a crash.  To my knowledge, UPP's are not executable
  1756. code, but just an information block that the Mixed Mode Manager uses to
  1757. figure out where the code it should run is and what architecture it's
  1758. written in.
  1759.  
  1760. -David McWherter
  1761. dtm+@andrew.cmu.edu
  1762. http://abduction.res.cmu.edu
  1763.  
  1764. I want to die peacefully, in my sleep, like my grandfather, not
  1765. screaming, terrified, like his passengers.  
  1766.  
  1767. +++++++++++++++++++++++++++
  1768.  
  1769. >From scouten@metrowerks.com (Eric Scouten)
  1770. Date: Tue, 09 Apr 1996 19:01:02 -0500
  1771. Organization: Metrowerks, Inc.
  1772.  
  1773. In article <klOiWm_00iWR0F6ph8@andrew.cmu.edu>, David T Mcwherter
  1774. <dtm+@andrew.cmu.edu> wrote:
  1775.  
  1776. > But you could just setup a RoutineDescriptor with your code (whatever
  1777. > architecture) and pass that. If OT just does a jump to the code, then it
  1778. > will jump to MixedModeMagic inside the upp and everything will be fine.
  1779. > Right?
  1780.  
  1781. Wrong. Since OT is written native, it assumes that it can bypass its
  1782. internal mixed-mode stuff and calls your notifier proc address directly,
  1783. without a call to CallUniversalProc.
  1784.  
  1785. The MixedModeMagic trap is a valid 68K instruction, but not a valid
  1786. PowerPC instruction.
  1787.  
  1788.  
  1789. So...ummm... why would you *want* to write the body of your code in
  1790. PowerPC, but the notifier proc in 68K anyway?
  1791.  
  1792.  
  1793. -es
  1794.  
  1795. __________________________________________________________________________
  1796. Eric Scouten                                       Constructor Constructor
  1797. scouten@metrowerks.com                                     Metrowerks, Inc.
  1798.  
  1799. Buying my car was easy, but this... this is SHOES.
  1800.    -Saturn advertisement
  1801.  
  1802. +++++++++++++++++++++++++++
  1803.  
  1804. >From zobkiw@triplesoft.com (Joe Zobkiw)
  1805. Date: Tue, 09 Apr 1996 21:39:43 -0400
  1806. Organization: TripleSoft Inc.
  1807.  
  1808. In article <klOiWm_00iWR0F6ph8@andrew.cmu.edu>, David T Mcwherter
  1809. <dtm+@andrew.cmu.edu> wrote:
  1810.  
  1811. >>>
  1812. >> In article <MlNbEm_00iWXA1ELQQ@andrew.cmu.edu>, David T Mcwherter
  1813. >> <dtm+@andrew.cmu.edu> wrote:
  1814. >> 
  1815. >> No.  The only safe use of notifiers is to point them at code that's
  1816. >> compiled in the native architecture of the endpoint.  [The native
  1817. >> architecture of the endpoint is the ISA of the client that called
  1818. >> OpenEndpoint.]  OT does not CallUniversalProc when calling your notifier,
  1819. >> it just jumps to it.
  1820. >> 
  1821. >> If your endpoint needs access to non-native code, you will have install a
  1822. >> native endpoint that does the MixedModeMagic.
  1823. >> 
  1824. >
  1825. >Yeah,
  1826. >
  1827. >But you could just setup a RoutineDescriptor with your code (whatever
  1828. >architecture) and pass that. If OT just does a jump to the code, then it
  1829. >will jump to MixedModeMagic inside the upp and everything will be fine.
  1830. >
  1831. >Right?
  1832. >
  1833. ><<
  1834. >
  1835. >Thanks for the help!  I would, however, have to say no to giving a UPP
  1836. >(routine descriptor) instead of a ProcPtr.  I believe that would be a
  1837. >sure way to cause a crash.  To my knowledge, UPP's are not executable
  1838. >code, but just an information block that the Mixed Mode Manager uses to
  1839. >figure out where the code it should run is and what architecture it's
  1840. >written in.
  1841. >
  1842.  
  1843. Actually, the first word of a RoutineDescriptor is an executable 68k
  1844. instruction...that of _MixedModeMagic. When it is called it knows that the
  1845. information following it contains the rest of the RoutineDescriptor and
  1846. the RoutineRecord(s).
  1847.  
  1848. Looked at MixedMode.h for the specific definition.
  1849.  
  1850.  
  1851. Joe Zobkiw                                     TripleSoft Inc.
  1852. <mailto:zobkiw@triplesoft.com>   PO Box 30774 Raleigh NC 27622
  1853. <http://www.triplesoft.com/>          (919) 872-0916 voice/fax
  1854.                                  
  1855. - - Macintosh Software Development and Internet Publishing ---
  1856.  
  1857. Macintosh Programmers -> <http://www.triplesoft.com/fragment/>
  1858.  
  1859. ---------------------------
  1860.  
  1861. >From karm@bga.com (Kevin Armstrong)
  1862. Subject: So how does DrawSprocket work?
  1863. Date: Fri, 05 Apr 1996 12:36:56 -0600
  1864. Organization: Lion Entertainment, Inc.
  1865.  
  1866. After downloading the Games Sprocket Docs and SDK, running the examples,
  1867. and thinking about things, I've come up with a few questions for the folks
  1868. at Apple.
  1869.  
  1870. What exactly do you mean by Double Buffering and Page Flipping?  What are
  1871. the exact details of the implementations on the Mac?
  1872.  
  1873. Kevin Armstrong
  1874. Lion Entertainment, Inc.
  1875.  
  1876. +++++++++++++++++++++++++++
  1877.  
  1878. >From kbs3387@silver.sdsmt.edu (Kevin Stone)
  1879. Date: 6 Apr 1996 02:04:19 GMT
  1880. Organization: South Dakota School of Mines and Technology
  1881.  
  1882. : What exactly do you mean by Double Buffering and Page Flipping?  
  1883.  
  1884.    Double buffering and Page flipping are essentialy the same thing.  
  1885.    The idea is that you have two "pages" of memory.  While you're 
  1886.    drawing to one of the pages, the other page is being displayed.  Then, 
  1887.    when you're done drawing the first page, you can "flip" the pages so 
  1888.    the page that was currently being drawn in is now being displayed, and 
  1889.    the page that was being displayed will now be the page that will be drawn 
  1890.    in.
  1891.  
  1892.    Because it only takes one pointer move to "flip" pages... Page flipping 
  1893.    is simply the FASTEST way to produce animation.  This is 
  1894.    one of the main reasons why PC's have so many superior games.
  1895.  
  1896. : What are the exact details of the implementations on the Mac?
  1897.  
  1898.    That, I cannot help you with.  I'm still trying to download the 
  1899.    Game Sprockets SDK from Apples development site. :(
  1900.  
  1901. Sincerly,
  1902. BAS
  1903.  
  1904.  
  1905. +++++++++++++++++++++++++++
  1906.  
  1907. >From karm@bga.com (Kevin Armstrong)
  1908. Date: Sat, 06 Apr 1996 01:31:21 -0600
  1909. Organization: Lion Entertainment, Inc.
  1910.  
  1911. In article <4k4jf3$gho@news.sdsmt.edu>, kbs3387@silver.sdsmt.edu (Kevin
  1912. Stone) wrote:
  1913.  
  1914. >: What exactly do you mean by Double Buffering and Page Flipping?  
  1915. >
  1916. >   Double buffering and Page flipping are essentialy the same thing.  
  1917. >   The idea is that you have two "pages" of memory.  While you're 
  1918. >   drawing to one of the pages, the other page is being displayed.  Then, 
  1919. >   when you're done drawing the first page, you can "flip" the pages so 
  1920. >   the page that was currently being drawn in is now being displayed, and 
  1921. >   the page that was being displayed will now be the page that will be drawn 
  1922. >   in.
  1923. >
  1924. >   Because it only takes one pointer move to "flip" pages... Page flipping 
  1925. >   is simply the FASTEST way to produce animation.  This is 
  1926. >   one of the main reasons why PC's have so many superior games.
  1927.  
  1928. Okay, your explanation is what I was thinking they were.  Now, if they are
  1929. essentially the same thing, why do you need both?  What is the difference
  1930. between the two?  Or are we caught up in the use of two terms for the same
  1931. thing?  Does double buffering mean that the video system has support for
  1932. using its ram as your buffers?  If that is what double buffering means, is
  1933. page flipping just setting a pointer to any place in memory?  I suppose
  1934. all this ties into the exact implementation question.
  1935.  
  1936. Why am I so concerned?  Well from what I can see, Double Buffering could
  1937. be really slow.  If you are trying to write to video ram, you could get
  1938. some major slowdowns because video ram can't be cached.  So if you are
  1939. applying a translucency to a piece of video memory, you have to read from
  1940. video memory and write to it which is going to be really slow.
  1941.  
  1942. There are problems with Page Flipping as well.  If you just point to two
  1943. buffers in memory, how does having a video card out on NuBus or PCI bus
  1944. affect performance?
  1945.  
  1946. I wish the documentation had been more clear on the subject.
  1947.  
  1948. Kevin Armstrong
  1949. Lion Entertainment, Inc.
  1950.  
  1951. +++++++++++++++++++++++++++
  1952.  
  1953. >From chriss@abs.net (Chris Sollitto)
  1954. Date: Sat, 06 Apr 1996 11:06:33 -0500
  1955. Organization: Capital Area Internet Service, Inc.
  1956.  
  1957. In article <karm-0604960131210001@news3.realtime.net>, karm@bga.com (Kevin
  1958. Armstrong) wrote:
  1959.  
  1960. > In article <4k4jf3$gho@news.sdsmt.edu>, kbs3387@silver.sdsmt.edu (Kevin
  1961. > Stone) wrote:
  1962. > >: What exactly do you mean by Double Buffering and Page Flipping?  
  1963. > >
  1964. > >   Double buffering and Page flipping are essentialy the same thing.  
  1965. > >   The idea is that you have two "pages" of memory.  While you're 
  1966. > >   drawing to one of the pages, the other page is being displayed.  Then, 
  1967. > >   when you're done drawing the first page, you can "flip" the pages so 
  1968. > >   the page that was currently being drawn in is now being displayed, and 
  1969. > >   the page that was being displayed will now be the page that will be drawn 
  1970. > >   in.
  1971. > >
  1972. > >   Because it only takes one pointer move to "flip" pages... Page flipping 
  1973. > >   is simply the FASTEST way to produce animation.  This is 
  1974. > >   one of the main reasons why PC's have so many superior games.
  1975. > Okay, your explanation is what I was thinking they were.  Now, if they are
  1976. > essentially the same thing, why do you need both?  What is the difference
  1977. > between the two?  Or are we caught up in the use of two terms for the same
  1978. > thing?  Does double buffering mean that the video system has support for
  1979. > using its ram as your buffers?  If that is what double buffering means, is
  1980. > page flipping just setting a pointer to any place in memory?  I suppose
  1981. > all this ties into the exact implementation question.
  1982. > Why am I so concerned?  Well from what I can see, Double Buffering could
  1983. > be really slow.  If you are trying to write to video ram, you could get
  1984. > some major slowdowns because video ram can't be cached.  So if you are
  1985. > applying a translucency to a piece of video memory, you have to read from
  1986. > video memory and write to it which is going to be really slow.
  1987. > There are problems with Page Flipping as well.  If you just point to two
  1988. > buffers in memory, how does having a video card out on NuBus or PCI bus
  1989. > affect performance?
  1990. > I wish the documentation had been more clear on the subject.
  1991. > Kevin Armstrong
  1992. > Lion Entertainment, Inc.
  1993.  
  1994. In Apple's implementation, Double Buffering is only a software emulation
  1995. of hardware page-flipping which is used on computers which don't have
  1996. hardware support for page flipping.  In the current release (DR1), the
  1997. release notes say that Double Buffering simply calls CopyBits() to do the
  1998. swap, but in the future it will use a highly optimized blitter.
  1999.  
  2000. -- 
  2001. Chris
  2002.  
  2003. +++++++++++++++++++++++++++
  2004.  
  2005. >From karm@bga.com (Kevin Armstrong)
  2006. Date: Sat, 06 Apr 1996 16:23:31 -0600
  2007. Organization: Lion Entertainment, Inc.
  2008.  
  2009. In article <chriss-0604961106330001@pm2-s042.abs.net>, chriss@abs.net
  2010. (Chris Sollitto) wrote:
  2011.  
  2012. >In Apple's implementation, Double Buffering is only a software emulation
  2013. >of hardware page-flipping which is used on computers which don't have
  2014. >hardware support for page flipping.  In the current release (DR1), the
  2015. >release notes say that Double Buffering simply calls CopyBits() to do the
  2016. >swap, but in the future it will use a highly optimized blitter.
  2017. >
  2018. >-- 
  2019. >Chris
  2020.  
  2021. Thanks Chris, that explains a lot of things.  I've been so busy trying to
  2022. download this stuff and work on other things that I missed some of the
  2023. details as I rushed through the documentation.  One question, why does
  2024. Apple's documentation say that some machines don't have support for
  2025. hardware double buffering?  Why would you need it if you had page
  2026. flipping?  Or did I read that wrong as well?  Maybe I'll go and take
  2027. another look at the documentation now. =)
  2028.  
  2029. Kevin Armstrong
  2030. Lion Entertainment, Inc.
  2031.  
  2032. +++++++++++++++++++++++++++
  2033.  
  2034. >From brianm@caledonia.polaristel.net (Brian P. McCarty)
  2035. Date: Sat, 06 Apr 1996 20:13:34 -0600
  2036. Organization: totally disorganized
  2037.  
  2038. In article <karm-0504961236560001@news3.realtime.net>, karm@bga.com (Kevin
  2039. Armstrong) wrote:
  2040.  
  2041. > After downloading the Games Sprocket Docs and SDK, running the examples,
  2042. > and thinking about things, I've come up with a few questions for the folks
  2043. > at Apple.
  2044. > What exactly do you mean by Double Buffering and Page Flipping?  What are
  2045. > the exact details of the implementations on the Mac?
  2046. I don't know, but it was posted earlier that the "official" address for
  2047. questions, feedback, etc is sprockets@adr.apple.com.
  2048.  
  2049. > Kevin Armstrong
  2050. > Lion Entertainment, Inc.
  2051.  
  2052. -- 
  2053. Brian P. McCarty, N9IWP
  2054. e-mail:brianm@caledonia.polaristel.net
  2055. snail-mail:410 S. Ramsey, Apt. 4 Caledonia, MN 55921-1116
  2056. ICBM:43deg 38' 05" N  91deg 29' 48" W
  2057.  
  2058. +++++++++++++++++++++++++++
  2059.  
  2060. >From albtrssp@crocker.com (Kevin Tieskoetter)
  2061. Date: 7 Apr 1996 02:02:59 GMT
  2062. Organization: Albatross Productions
  2063.  
  2064. In article <karm-0604960131210001@news3.realtime.net>
  2065. karm@bga.com (Kevin Armstrong) writes:
  2066.  
  2067. > Okay, your explanation is what I was thinking they were.  Now, if they are
  2068. > essentially the same thing, why do you need both?  What is the difference
  2069. > between the two?  Or are we caught up in the use of two terms for the same
  2070. > thing?  Does double buffering mean that the video system has support for
  2071. > using its ram as your buffers?  If that is what double buffering means, is
  2072. > page flipping just setting a pointer to any place in memory?  I suppose
  2073. > all this ties into the exact implementation question.
  2074.  
  2075. By the way I understand the terms, double buffering and page flipping
  2076. are not the same thing. Page flipping is a form of double buffering,
  2077. but double buffering can be implemented in one of several different
  2078. ways - you can write to two separate memory locations and toggle a
  2079. pointer between the two, which requires hardware support (called page
  2080. flipping), or you can write your pixel data to some block of memory,
  2081. then copy it to the video memory once you've finished a frame (I don't
  2082. know if there's a specific technical term for this).
  2083.  
  2084. > Why am I so concerned?  Well from what I can see, Double Buffering could
  2085. > be really slow.  If you are trying to write to video ram, you could get
  2086. > some major slowdowns because video ram can't be cached.  So if you are
  2087. > applying a translucency to a piece of video memory, you have to read from
  2088. > video memory and write to it which is going to be really slow.
  2089.  
  2090. I would imagine that if you are doing operations that require several
  2091. reads/writes to the video ram, you wouldn't use page flipping. At some
  2092. point, the speeds of the two methods would probably cross.
  2093.  
  2094. Now that I think about it, why couldn't page-flipping VRAM be cached?
  2095. If you're writing to the section that is not being displayed, you
  2096. wouldn't have the problem of chunky updates to the screen. Then, when
  2097. you toggle the pointer, the cache gets flushed to VRAM.  Wouldn't this
  2098. work? Does anyone know how VGA handles this?
  2099.  
  2100.  
  2101. -kevin
  2102.  
  2103.  
  2104. --
  2105.   Kevin Tieskoetter 
  2106.       Software Prestidigitator, Specular Int'l
  2107. (http://www.specular.com)
  2108.       Author, _The Black Art of Macintosh Game Programming_ from Waite
  2109.               Group Press (http://www.waite.com/waite)
  2110.  
  2111. +++++++++++++++++++++++++++
  2112.  
  2113. >From kbs3387@silver.sdsmt.edu (Kevin Stone)
  2114. Date: 7 Apr 1996 18:33:55 GMT
  2115. Organization: South Dakota School of Mines and Technology
  2116.  
  2117. [deleted]
  2118. : details as I rushed through the documentation.  One question, why does
  2119. : Apple's documentation say that some machines don't have support for
  2120. : hardware double buffering?  
  2121.  
  2122.    Because it would be pointless thing to have in hardware.  Double 
  2123.    buffering is a software emulation of page flipping.  It's actualy no 
  2124.    different then using an offscreen pixmap and blitting it to the 
  2125.    screen's pixmap using CopyBits().  Infact... Apple said that the 
  2126.    current version of Draw Sprocket uses CopyBits() with Double Buffering.
  2127.  
  2128. : Why would you need it if you had page flipping?  
  2129.  
  2130.    You woudln't.  Page flipping is definitly the way to go if your 
  2131.    video card supports it.
  2132.  
  2133. BAS
  2134.  
  2135.  
  2136. +++++++++++++++++++++++++++
  2137.  
  2138. >From kant0031@itlabs.umn.edu (Krishna Kant)
  2139. Date: Mon, 08 Apr 1996 08:18:44 -0600
  2140. Organization: U. of MN
  2141.  
  2142. In article <chriss-0604961106330001@pm2-s042.abs.net>, chriss@abs.net
  2143. (Chris Sollitto) wrote:
  2144.  
  2145. > In Apple's implementation, Double Buffering is only a software emulation
  2146. > of hardware page-flipping which is used on computers which don't have
  2147. > hardware support for page flipping.  In the current release (DR1), the
  2148. > release notes say that Double Buffering simply calls CopyBits() to do the
  2149. > swap, but in the future it will use a highly optimized blitter.
  2150.  
  2151. Here are some quotes from the DrawSprocket docs:
  2152.  
  2153. "DrawSprocket provides safe ways of managing the display and manipulating
  2154. graphics, replacing the dangerous, word-of-mouth, or undocumented methods
  2155. currently in use. It provides a consistent user experience for configuring
  2156. game play. It also makes page flipping — long a capability of Apple
  2157. hardware — accessible to the game."
  2158.  
  2159. "SwapDisplayBuffers
  2160. Currently calls CopyBits immediately in software double buffering. In
  2161. hardware page flipping it only flips the pages. This call will be highly
  2162. optimized in future releases.
  2163. NOTE: for best performance, always setup your back buffer with the same
  2164. bit depth as the front buffer and Draw Sprocket will optimize transfers in
  2165. future releases. When the buffers are different bit depths then CopyBits
  2166. will be used."
  2167.  
  2168. "Double Buffering and Page Flipping
  2169. The PowerPC 7500 and 8500 video drivers have support for page flipping in
  2170. 8 bit depth modes only. Page flipping will not work in other bit depths."
  2171.  
  2172. Several months ago, Dale Adams from Apple gave us some information
  2173. regarding the double-buffering/page-flipping hardware on all powermacs,
  2174. and I will paraphrase (please correct me if I am misquoting):
  2175.  
  2176. "The new PCI macs have hardware blitters.  In fact, all the powermacs from
  2177. day one have had hardware blitters, but they have not been used
  2178. extensively."
  2179.  
  2180. Given the above (possibly incomplete) information, I arrive at the
  2181. following conclusions:
  2182.  
  2183. 1) _All_ powermacs have specific _hardware_ blitting acceleration built-in
  2184. (i.e. outside of the CPU).  This blitter is able to accelerate blitting
  2185. between DRAM->DRAM, as well as DRAM->VRAM.  I will call this "Hardware
  2186. Blitting". 
  2187.  
  2188. 2) _Some_ Powermacs, as well as the quadra 630 series, have support for a
  2189. separate buffer in VRAM.  I will call this "Page Flipping"
  2190.  
  2191. 2) CopyBits() uses neither Hardware Blitting nor Page Flipping, under any
  2192. circumstances--it uses the CPU to do software blits.
  2193.  
  2194. 3) Neither Hardware Blitting nor Page Flipping (as defined above) have
  2195. been documented well, before the release of the sprockets (or even after
  2196. the release of the sprockets, I guess).
  2197.  
  2198. 4) DrawSprocket currently uses Page Flipping, but not Hardware Blitting. 
  2199. Instead of Hardware Blitting, it uses copybits.  Eventually, the sprocket
  2200. will support Hardware Blitting for _all_ powermacs.
  2201.  
  2202. Are the above four statements correct?  If so, can someone from Apple or
  2203. somewhere else tell us where to find out more about "Hardware Blitting"?
  2204.  
  2205.  
  2206. In article <karm-0604960131210001@news3.realtime.net>, karm@bga.com (Kevin
  2207. Armstrong) wrote: 
  2208. > > Why am I so concerned?  Well from what I can see, Double Buffering could
  2209. > > be really slow.  If you are trying to write to video ram, you could get
  2210. > > some major slowdowns because video ram can't be cached.  So if you are
  2211. > > applying a translucency to a piece of video memory, you have to read from
  2212. > > video memory and write to it which is going to be really slow.
  2213.  
  2214. Isn't this how double buffering is implemented on the PC?  Do PC
  2215. programmers have to deal with these same problems as well, and if not,
  2216. why?
  2217.  
  2218. > > There are problems with Page Flipping as well.  If you just point to two
  2219. > > buffers in memory, how does having a video card out on NuBus or PCI bus
  2220. > > affect performance?
  2221. > > 
  2222.  
  2223. I don't claim to be an expert or anything, but it seems very unlikely to
  2224. me that anybody has made a card where you can simply point anywhere in
  2225. memory and have it display.
  2226.  
  2227.  
  2228. --
  2229. Krishna
  2230. kant0031@itlabs.umn.edu
  2231.  
  2232. +++++++++++++++++++++++++++
  2233.  
  2234. >From abrownswor@ea.com (Andrew Brownsword)
  2235. Date: Mon, 08 Apr 1996 10:36:13 -0700
  2236. Organization: Electronic Arts (Canada), Inc.
  2237.  
  2238. In article <kant0031-0804960818440001@dialup-5-125.gw.umn.edu>,
  2239. kant0031@itlabs.umn.edu (Krishna Kant) wrote:
  2240. >
  2241. >1) _All_ powermacs have specific _hardware_ blitting acceleration built-in
  2242. >(i.e. outside of the CPU).  This blitter is able to accelerate blitting
  2243. >between DRAM->DRAM, as well as DRAM->VRAM.  I will call this "Hardware
  2244. >Blitting". 
  2245. >
  2246.  
  2247. This is the first time I've heard this -- I would hazard a guess that the
  2248. hardware blitter is the DMA engine in the PowerMacs.  I know that all
  2249. NuBus and PCI PowerMacs have a pretty powerful and flexible DMA engine. 
  2250. The obvious advantage of using this to do the double buffer swap would be
  2251. that it runs asyncronously to the CPU.  I don't think it would be much
  2252. faster since most PowerPCs can saturate their memory bandwidth during such
  2253. an operation.
  2254.  
  2255.  
  2256. >2) _Some_ Powermacs, as well as the quadra 630 series, have support for a
  2257. >separate buffer in VRAM.  I will call this "Page Flipping"
  2258.  
  2259. We commonly use the term "page flipping" to mean "changing the video
  2260. subsystem's base address".  We use "double buffering" to imply a memory
  2261. transfer from the hidden buffer to the visible buffer.  From reading the
  2262. Sprocket docs I get the impression that Apple guys are using the same
  2263. terminology.  Hardware double buffering would then be a memory transfer
  2264. using something other than the CPU.
  2265.  
  2266. Some video cards might not let you change the base address of the visible
  2267. buffer.  If such a card had a blitter, it could implement hardware double
  2268. buffering by using the blitter to copy the buffers instead of the
  2269. motherboard's DMA engine.  This would give better performance than a
  2270. software DRAM->VRAM copy, assuming you don't need to read too much from
  2271. the card's VRAM using the CPU.  I don't know if such hardware exists, but
  2272. most current video drivers don't support more than 1 video page.
  2273.  
  2274.  
  2275. >4) DrawSprocket currently uses Page Flipping, but not Hardware Blitting. 
  2276. >Instead of Hardware Blitting, it uses copybits.  Eventually, the sprocket
  2277. >will support Hardware Blitting for _all_ powermacs.
  2278. >
  2279.  
  2280. The Sprockets doc says that hardware double buffering is rare.  Which is
  2281. strange in the light of your statement #1 and my definition #2.  So
  2282. something's gotta be a little off.  Hopefully the Sprocket docs.
  2283.  
  2284.  
  2285. >Isn't this how double buffering is implemented on the PC?  Do PC
  2286. >programmers have to deal with these same problems as well, and if not,
  2287. >why?
  2288. >
  2289. >> > There are problems with Page Flipping as well.  If you just point to two
  2290. >> > buffers in memory, how does having a video card out on NuBus or PCI bus
  2291. >> > affect performance?
  2292. >> > 
  2293. >
  2294. >I don't claim to be an expert or anything, but it seems very unlikely to
  2295. >me that anybody has made a card where you can simply point anywhere in
  2296. >memory and have it display.
  2297. >
  2298.  
  2299. I think VGA/SVGA devices are pretty flexible about where you can point the
  2300. base address, although they tend to have some pretty weird behaviour due
  2301. to the PC architecture (bank switching being a truly evil such behaviour).
  2302.  
  2303. One important difference between the Pentium and PowerPC is (correct me if
  2304. I'm wrong) that the Pentium does not cache on write.  This makes the
  2305. PowerPC's performance to DRAM better, exaggerating the slowness of VRAM
  2306. even further (since VRAM is non-cacheable).
  2307.  
  2308. As for whether double buffering or pageflipping is better... this has been
  2309. discussed in this group at length.  The conclusion (I think) is far from
  2310. clearcut -- pageflipping isn't some pancea that will dramatically improve
  2311. your framerate, but it will eliminate tearing.  If your rendering routines
  2312. don't suffer from non-cached VRAM and very poor read performance then
  2313. pageflipping will give you a big win.  If you touch pixels multiple times,
  2314. or if you read from the frame buffer then double buffering can actually be
  2315. faster than pageflipping.  If pageflipping is available, however, you may
  2316. want to use it IN ADDITION to double buffering to avoid tearing.
  2317.  
  2318. I have yet to see a page flipping system that marks the hidden buffer(s)
  2319. as cacheable until they are made visible.  This would seem to be
  2320. worthwhile on systems with large caches, especially for the PowerPC. 
  2321. Flushing the cache would then be required before pageflipping, but the
  2322. flush operation would use the bus' burst mode.
  2323.  
  2324. -- 
  2325. Andrew Brownsword
  2326. Software Engineer
  2327. Electronic Arts (Canada), Inc.
  2328. - ----------------------------
  2329. "The opinions expressed in this message are my own and don't necessarily reflect those of my employer."
  2330.  
  2331. +++++++++++++++++++++++++++
  2332.  
  2333. >From farrier@apple.com (Cary Farrier)
  2334. Date: Mon, 08 Apr 1996 11:44:43 -0800
  2335. Organization: Apple Computer, Inc.
  2336.  
  2337. In article <karm-0604961623310001@news3.realtime.net>, karm@bga.com (Kevin
  2338. Armstrong) wrote:
  2339.  
  2340. > One question, why does
  2341. > Apple's documentation say that some machines don't have support for
  2342. > hardware double buffering?  Why would you need it if you had page
  2343. > flipping?  Or did I read that wrong as well?  Maybe I'll go and take
  2344. > another look at the documentation now. =)
  2345. > Kevin Armstrong
  2346. > Lion Entertainment, Inc.
  2347.  
  2348. First let me clarify a few terms so we can all make sure we are
  2349. talking about the same things :-).
  2350.  
  2351. Page Flipping.  When your video subsystem can display alternatate "pages"
  2352. of VRAM as the current video page.  To "page flip" means to tell the
  2353. video system to show a different video page, and is very fast because it
  2354. involves only a driver call to show an entirely different page of video data.
  2355.  
  2356. Double Buffering.  When your video subsystem CAN'T display alternate pages
  2357. of VRAM as the current video page.  When a system can't page flip, the only 
  2358. alternative is to render into an offscreen buffer and then copy it to the
  2359. screen as fast as possible, hopefully following the video beam so you
  2360. don't get tearing artifacts.  Depending on the display resolution, you may
  2361. be copying a few hundred kbytes or perhaps a megabyte or more of data.
  2362.  
  2363. Not all of our video systems have the ability to page flip.  Some machines 
  2364. have the ability but don't bring it out to the system.  Currently the 7500 
  2365. and 8500 machines can, but you have to know the magic handshake to get
  2366. them to do it for you.  That's where DrawSprocket comes in.
  2367.  
  2368. You're right in that read-modify-writes to VRAM can be very slow.  If you
  2369. find that your game has too low of a pain threshold for this then you can
  2370. always force DrawSprocket to double buffer instead of page flip.
  2371.  
  2372. In any event, whether you are page flipping or double buffering will be 
  2373. transparent to your rendering engine when the DR3/DR4 release rolls out in
  2374. a few 
  2375. weeks; I will have some very cool things in by then.  You'll still be able to 
  2376. tell DS to not page flip if you want to, though.
  2377.  
  2378. -> Cary
  2379.  
  2380. -- 
  2381. - -------------------------------------------------------------------
  2382. Cary Farrier
  2383. Software Engineer, Apple Game Technology Group
  2384. farrier@apple.com
  2385.  
  2386. +++++++++++++++++++++++++++
  2387.  
  2388. >From zzkbergm@dingo.uq.edu.au (Christoph Bergmann)
  2389. Date: Tue, 09 Apr 1996 09:21:22 +1000
  2390. Organization: University of Queensland
  2391.  
  2392. > >1) _All_ powermacs have specific _hardware_ blitting acceleration built-in
  2393. > >(i.e. outside of the CPU).  This blitter is able to accelerate blitting
  2394. > >between DRAM->DRAM, as well as DRAM->VRAM.  I will call this "Hardware
  2395. > >Blitting". 
  2396.  
  2397. let's pray. maybe apple will tell us how? :)
  2398.  
  2399.  
  2400. > I have yet to see a page flipping system that marks the hidden buffer(s)
  2401. > as cacheable until they are made visible.  This would seem to be
  2402. > worthwhile on systems with large caches, especially for the PowerPC. 
  2403. > Flushing the cache would then be required before pageflipping, but the
  2404. > flush operation would use the bus' burst mode.
  2405.  
  2406. can powermac software even do this? i know the system software controls
  2407. most of the cache settings. can this be safely overridden? (if so, can we
  2408. even do it for the _visible_ page, write cached, and flush the cache at
  2409. the end? is this faster than double-writes?)
  2410.  
  2411. chris
  2412.  
  2413. +++++++++++++++++++++++++++
  2414.  
  2415. >From nctrost@interaccess.com (Nathaniel C. Trost)
  2416. Date: Tue, 09 Apr 1996 06:40:33 -0600
  2417. Organization: InterAccess Co.
  2418.  
  2419. In article <farrier-0804961144430001@a17-201-33-79.apple.com>,
  2420. farrier@apple.com (Cary Farrier) wrote:
  2421.  
  2422. > Not all of our video systems have the ability to page flip.  Some machines 
  2423. > have the ability but don't bring it out to the system.  Currently the 7500 
  2424. > and 8500 machines can, but you have to know the magic handshake to get
  2425. > them to do it for you.  That's where DrawSprocket comes in.
  2426.  
  2427. What about the 5200/6200/6300?  I have been tearing my hair out for a
  2428. while on these since I know _how_ the Valkyrie works, I just don't know
  2429. where the control registers are!
  2430.  
  2431. For anyone who is curious, the Valkryie is described in the technical
  2432. notes for the Quadra 630, Performa 5200/6200/6300/etc.  Basically, its
  2433. ability to page-flip comes from its support for video-in from the capture
  2434. card or the TV tuner.  The meg of DRAM is divided into three buffers: the
  2435. main display buffer and a pair of 320x240x16b buffers used for video
  2436. display.  One of the video buffers is the display buffer and the other is
  2437. the draw buffer.  The position, width and height of the display buffer
  2438. (displayed on top of the main display buffer) can be changed.  I just
  2439. haven't been able to find any reference to where all the registers are and
  2440. haven't had time to poke around in anything that uses it (or, THE thing
  2441. that uses it <grin>).
  2442.  
  2443. Is the 7500/8500 page flip similar to the Valkryie only with higher
  2444. resolution in the video buffers?  I haven't read over the hardware notes
  2445. for those machines.....
  2446.  
  2447. > You're right in that read-modify-writes to VRAM can be very slow.  If you
  2448. > find that your game has too low of a pain threshold for this then you can
  2449. > always force DrawSprocket to double buffer instead of page flip.
  2450.  
  2451. Will it also support double buffing with page flipping? <grin>  What I
  2452. mean is, even when lots of read-modify-writes to the pixel buffer are
  2453. required, page flipping would still be nice for tear reduction.  Would the
  2454. Draw Sprocket support having a main memory pixel buffer for primary
  2455. rendering with a command to blit the offscreen buffer to the hardware page
  2456. NOT being displayed and THEN switch the pages?  I too need to sit down and
  2457. really read the documentation...
  2458.  
  2459. -- 
  2460. Nate Trost
  2461.  
  2462. +++++++++++++++++++++++++++
  2463.  
  2464. >From farrier@apple.com (Cary Farrier)
  2465. Date: Tue, 09 Apr 1996 06:38:30 -0700
  2466. Organization: Apple Computer, Inc.
  2467.  
  2468. In article <nctrost-0904960640330001@d148.w.interaccess.com>,
  2469. nctrost@interaccess.com (Nathaniel C. Trost) wrote:
  2470. > What about the 5200/6200/6300?  I have been tearing my hair out for a
  2471. > while on these since I know _how_ the Valkyrie works, I just don't know
  2472. > where the control registers are!
  2473.  
  2474. The Valkyrie has some very cool modes, and the Valkyrie AR has even better
  2475. things such as linear interpoloation during pixel doubling.
  2476.  
  2477. I would like to bring these modes out and make them available from Draw
  2478. Sprocket, the exact details of how I will do this are not decided on yet.
  2479. It will probably be in the form of private driver calls between DS and
  2480. the video driver.
  2481.  
  2482. > Is the 7500/8500 page flip similar to the Valkryie only with higher
  2483. > resolution in the video buffers?  I haven't read over the hardware notes
  2484. > for those machines.....
  2485.  
  2486. No, the Valkyrie page flipping is an odd entity.  The Valkyrie uses the two
  2487. video input buffers as pages, as you know already.  This means that they
  2488. are separate from the graphics plane and can be intermixed, which is how
  2489. you get the little TV video window on your desktop.  You can't have graphic
  2490. overlays with the 7500/8500 page flipping, since they are already graphic
  2491. pages.
  2492.  
  2493. > Will it also support double buffing with page flipping? <grin>  What I
  2494.  
  2495. Yes, you can create an offscreen buffer through DS and bring it to the
  2496. back page before flipping, using one of my fast blitters.
  2497.  
  2498. > I too need to sit down and really read the documentation...
  2499.  
  2500. There are a lot of changes that didn't make it into the old docs, and a number
  2501. of new calls too.  I also am adding new things as people bring them to my
  2502. attention.  Don't take the existing docs as the last word, in other words.
  2503.  
  2504. -> Cary
  2505.  
  2506. -- 
  2507. -- 
  2508. - -------------------------------------------------------------------
  2509. Cary Farrier
  2510. Software Engineer, Apple Game Technology Group
  2511. farrier@apple.com
  2512.  
  2513. +++++++++++++++++++++++++++
  2514.  
  2515. >From kant0031@itlabs.umn.edu (Krishna Kant)
  2516. Date: Tue, 09 Apr 1996 22:21:28 -0600
  2517. Organization: U. of MN
  2518.  
  2519. In article <farrier-0904960638300001@farrier.vip.best.com>,
  2520. farrier@apple.com (Cary Farrier) wrote:
  2521. > Yes, you can create an offscreen buffer through DS and bring it to the
  2522. > back page before flipping, using one of my fast blitters.
  2523.  
  2524. Is this blitting done in software (like a fast version of CopyBits), or
  2525. does DS access "special hardware" on Powermacs (outside the CPU) which
  2526. does the blitting?
  2527.  
  2528. --
  2529. Krishna
  2530. kant0031@itlabs.umn.edu
  2531.  
  2532.  
  2533. +++++++++++++++++++++++++++
  2534.  
  2535. >From farrier@apple.com (Cary Farrier)
  2536. Date: Wed, 10 Apr 1996 09:33:53 -0700
  2537. Organization: Apple Computer, Inc.
  2538.  
  2539. In article <316BB589.41C67EA6@ls11.informatik.uni-dortmund.de>, Frank
  2540. Hoffmann <hoffmann@ls11.informatik.uni-dortmund.de> wrote:
  2541.  
  2542. >Could you explain the 7500/8500 page flipping a little bit more in detail? 
  2543. >Is it a real Page Flipping or only hardware support for DMA copy?
  2544.  
  2545. It is real page flipping.
  2546.  
  2547. >Is there a limitation at which adresses a page could start?  
  2548.  
  2549. Yes, they are fixed at 2Mb offsets from the base address of the VRAM, and 
  2550. only two pages are allowed.  This means that you must have 4Mb of VRAM
  2551. for the page flipping to work on the 7500/8500.
  2552.  
  2553. >I have read that the 7500/8500 could copy a bitmap with a one bit bitmask 
  2554. >to a gfxpage without useing the processor, useing DMA. Is this true?
  2555.  
  2556. You're probably thinking of DBDMA.  DBDMA is a DMA system that exists in 
  2557. all of the PCI PowerPC machines.  It doesn't have limitations on the data 
  2558. being passed in that respect, so the bitmask you are referring to must be
  2559. either a function of the video hardware or something someone thought of
  2560. as a way to manipulate the video hw, if the capability exists at all.
  2561.  
  2562. >Are you planning to support that in future DS versions? 
  2563.  
  2564. On the machines that do have a DBDMA controller, I will be taking 
  2565. advantage of them (the 7200 is one machine that I am positive has one,
  2566. the other machines, including the 7500/8500, I am not sure of).
  2567.  
  2568. >I do not know about speed and bus usage of this 
  2569. >feature, but under certain conditions that could be much faster
  2570.  
  2571. The biggest gain that I see will be that DBDMA would offload a large
  2572. percentage of the transfer work to the dma system, freeing up the
  2573. CPU.
  2574.  
  2575. >What about the 6100/7100/8100 DRAM,VRAM and AV Gfx. Does they support page 
  2576. >flipping in Hardware?
  2577.  
  2578. When we revise the drivers for each machine, any capabilities will
  2579. be brought out.  I don't have the specs for those machines in front of
  2580. me so I can't say for certain.
  2581.  
  2582. >Does I understand it right, that the machines with the Valkyrie chip does 
  2583. >not support page flipping and double buffering in Hardware with resolutions 
  2584. >higher than 320*240 pixels?
  2585.  
  2586. AFAIK.  When the drivers are revved and the capabilities brought out,
  2587. I will know for sure.
  2588.  
  2589. -> Cary
  2590.  
  2591. -- 
  2592. - -------------------------------------------------------------------
  2593. Cary Farrier
  2594. Software Engineer, Apple Game Technology Group
  2595. farrier@apple.com
  2596.  
  2597. +++++++++++++++++++++++++++
  2598.  
  2599. >From farrier@apple.com (Cary Farrier)
  2600. Date: Wed, 10 Apr 1996 09:35:37 -0700
  2601. Organization: Apple Computer, Inc.
  2602.  
  2603. In article <kant0031-0904962221280001@dialup-4-63.gw.umn.edu>,
  2604. kant0031@itlabs.umn.edu (Krishna Kant) wrote:
  2605. > Is this blitting done in software (like a fast version of CopyBits), or
  2606. > does DS access "special hardware" on Powermacs (outside the CPU) which
  2607. > does the blitting?
  2608.  
  2609. Yes, and yes -- It depends on the capabilities of the machine the software
  2610. is running on.
  2611.  
  2612. -> Cary
  2613.  
  2614. -- 
  2615. - -------------------------------------------------------------------
  2616. Cary Farrier
  2617. Software Engineer, Apple Game Technology Group
  2618. farrier@apple.com
  2619.  
  2620. +++++++++++++++++++++++++++
  2621.  
  2622. >From Frank Hoffmann <hoffmann@ls11.informatik.uni-dortmund.de>
  2623. Date: Wed, 10 Apr 1996 15:20:10 +0200
  2624. Organization: CS Department, University of Dortmund, Germany
  2625.  
  2626. Cary Farrier wrote:
  2627. > > Is the 7500/8500 page flip similar to the Valkryie only with higher
  2628. > > resolution in the video buffers?  I haven't read over the hardware notes
  2629. > > for those machines.....
  2630. > No, the Valkyrie page flipping is an odd entity.  The Valkyrie uses the two
  2631. > video input buffers as pages, as you know already.  This means that they
  2632. > are separate from the graphics plane and can be intermixed, which is how
  2633. > you get the little TV video window on your desktop.  You can't have graphic
  2634. > overlays with the 7500/8500 page flipping, since they are already graphic
  2635. > pages.
  2636.  
  2637. Could you explain the 7500/8500 page flipping a little bit more in detail? Is it a
  2638. real Page Flipping or only hardware support for DMA copy?
  2639. Is there a limitation at which adresses a page could start?  
  2640.  
  2641. I have read that the 7500/8500 could copy a bitmap with a one bit bitmask to a gfxpage 
  2642. without useing the processor, useing DMA. Is this true? Are you planning to support that
  2643. in future DS versions? I do not know about speed and bus usage of this feature, but under
  2644. certain conditions that could be much faster (because the VRAM is not cachable) and 
  2645. other programing methods (one we have just implemented in out upcomeing game).
  2646.  
  2647. What about the 6100/7100/8100 DRAM,VRAM and AV Gfx. Does they support page flipping in
  2648. Hardware? 
  2649.  
  2650. Does I understand it right, that the machines with the Valkyrie chip does not support 
  2651. page flipping and double buffering in Hardware with resolutions higher than 320*240 pixels?
  2652.  
  2653. -- 
  2654. Frank Hoffmann                 voice: (Germany)-2103-44690
  2655. Hochdahler Str.134            
  2656. 40724 Hilden, Germany    
  2657. Internet e-mail: hoffmann@ls11.informatik.uni-dortmund.de
  2658.  
  2659. ---------------------------
  2660.  
  2661. >From bill@clavin.lmsc.lockheed.com (Bill Catambay)
  2662. Subject: TCL Page needs feedback.
  2663. Date: Wed, 03 Apr 1996 09:09:25 -0800
  2664. Organization: Enterprise Information Systems
  2665.  
  2666.  
  2667. The latest article posted to Pascal Central is "TCL Pascal LIVES!!!", a
  2668. collection of TCL source code tidbits for Pascal TCL programmers.  Check
  2669. out the page, and _please_ provide feedback, either in terms of what you
  2670. want but cannot find there, or what you may have to contribute to it (such
  2671. as CW TCL support information, TCL samples, etc.).  Thanks!
  2672.  
  2673. Pascal Central web site:
  2674.  
  2675. http://www.webcom.com/icog/polymorphic/pascal.html
  2676.  
  2677. Pascal Central is a collection of Pascal-related content all in one
  2678. location to make it easier for the many Pascal developers out there to
  2679. cope in a world dominated by C and C++. 
  2680.  
  2681. If you have any pascal-related articles, documented source code or book
  2682. reviews you think would be of benefit to the Pascal community, let me
  2683. know.  Pascal Central is now going through adolescence, and I'm always
  2684. looking to the Pascal community to help mature its content.
  2685.  
  2686. Cheers,
  2687. Bill
  2688.  
  2689. _____________________________________________________________________
  2690. Bill Catambay
  2691. Pascal Programmer on Macintosh and Open VMS
  2692.  
  2693.               />
  2694.              //   The purpose of software engineering  
  2695.      (//////[O]>=========================================-
  2696.              \\    is to manage complexity, not to create it.
  2697.               \>
  2698.  
  2699. ____________________________________________________________________
  2700.         
  2701.  
  2702. ---------------------------
  2703.  
  2704. >From pawliger@mv.us.adobe.com (Marc Pawliger)
  2705. Subject: What are little GURLs made of?
  2706. Date: 8 Apr 1996 18:05:13 GMT
  2707. Organization: Adobe Systems, Mt. View, CA
  2708.  
  2709. Sugar and spice and AEParamFlags?
  2710.  
  2711. I need to know the simplest and proper way to send out GURL events from an
  2712. app.  I want to be able to tell from the app:
  2713.  
  2714. - If IC is installed, just use ICLaunchURL I have the IC SDK and source.
  2715.   I'd rather not use the IC static lib but just gestalt whether IC is
  2716.   installed before calling through to it.
  2717.  
  2718. - Otherwise send the AE myself to a browser IFF one is running.  This is
  2719.   the ugly part since I can't assume IC is there.
  2720.  
  2721. - Otherwise do something else.
  2722.  
  2723. TIA.
  2724. --marc
  2725.  
  2726. -- 
  2727. + Marc Pawliger          pawliger@adobe.com          415.962.4918 +
  2728. |                                                                 |
  2729. | Adobe Systems         Photoshop Wiseguy(tm)        Mt. View, CA |
  2730. + Current Peeve: prematurely failed fusible links in a 1992 240SX +
  2731.  
  2732. +++++++++++++++++++++++++++
  2733.  
  2734. >From isis@isis-intl.com (Mike Cohen)
  2735. Date: Wed, 10 Apr 1996 10:52:23 -0600
  2736. Organization: ISIS International
  2737.  
  2738. In article <4kbkgp$5a7@enquirer.mv.us.adobe.com>,
  2739. pawliger@mv.us.adobe.com (Marc Pawliger) wrote:
  2740.  
  2741. >
  2742. >- Otherwise send the AE myself to a browser IFF one is running.  This is
  2743. >  the ugly part since I can't assume IC is there.
  2744. >
  2745.  
  2746. There should be a user preference for which browser to use. If the browser
  2747. isn't running, launch it either by full pathname or by searching the
  2748. Desktop Database on all volumes for the signature.
  2749.  
  2750. After it's running, send an AppleEvent of class 'GURL' & ID 'GURL' with the
  2751. text of the URL in the direct object.
  2752.  
  2753.  
  2754. --
  2755. Mike Cohen - isis@isis-intl.com - Home Page: http://www.isis-intl.com/
  2756. Sound is the same for all the world - Youssou N'dour, "Eyes Open"
  2757.  
  2758.  
  2759. +++++++++++++++++++++++++++
  2760.  
  2761. >From jwbaxter@olympus.net (John W. Baxter)
  2762. Date: Thu, 11 Apr 1996 17:39:22 -0700
  2763. Organization: Internet for the Olympic Peninsula
  2764.  
  2765. In article <AD9143679668244BD8@cpr-cap-1.wyoming.com>, isis@isis-intl.com
  2766. (Mike Cohen) wrote:
  2767.  
  2768. >In article <4kbkgp$5a7@enquirer.mv.us.adobe.com>,
  2769. >pawliger@mv.us.adobe.com (Marc Pawliger) wrote:
  2770. >
  2771. >>
  2772. >>- Otherwise send the AE myself to a browser IFF one is running.  This is
  2773. >>  the ugly part since I can't assume IC is there.
  2774. >>
  2775. >
  2776. >There should be a user preference for which browser to use. If the browser
  2777. >isn't running, launch it either by full pathname or by searching the
  2778. >Desktop Database on all volumes for the signature.
  2779. >
  2780. >After it's running, send an AppleEvent of class 'GURL' & ID 'GURL' with the
  2781. >text of the URL in the direct object.
  2782.  
  2783.  
  2784. And if Internet Config is available, use the brower preference set there
  2785. rather than making your user deal with setting your preference the same
  2786. way she set Internet Config 2 months ago in hopes of not having to deal
  2787. with this stuff in every program.
  2788.  
  2789.    --John
  2790.  
  2791. -- 
  2792.   The primary cause of problems is solutions.
  2793. John W. Baxter    Port Ludlow, WA, USA     jwbaxter@olympus.net
  2794.  
  2795. ---------------------------
  2796.  
  2797. >From 73045.734@compuserve.com (Robert E Otto)
  2798. Subject: Windows vs Dialogs
  2799. Date: Sat, 30 Mar 1996 03:53:27 -0600
  2800. Organization: REO Associates
  2801.  
  2802. I have been into Mac programming for eight weeks now and ready to
  2803. do some serious development. Here is what I am trying to do...
  2804.  
  2805. I want to create an instrument panel. The panel will have sliders, strip
  2806. charts, buttons, etc. It will *not* contain any text or numbers. No need
  2807. for scroll bars but I do want the panel to grow and zoom. Also I want to
  2808. create multiple copies of the panel.
  2809.  
  2810. A modeless dialog box would seem to nicely handle the various fields in
  2811. the panel but it looks like I am violating something with the grow and
  2812. zoom capability. From the Human Interface Guidlines they seem to be
  2813. restricted to windows.
  2814.  
  2815. On the other hand, windows seem to be for documents and I don't have any text!
  2816. Which way to go?
  2817.  
  2818. I really need help in understanding the issues involved. Any advice appreciated.
  2819.  
  2820. -- 
  2821. Bob Otto
  2822. St Louis
  2823. 38.612 N 90.482 W
  2824.  
  2825. +++++++++++++++++++++++++++
  2826.  
  2827. >From meir@zoology.washington.edu (Eli Meir)
  2828. Date: 31 Mar 1996 20:17:07 GMT
  2829. Organization: Dept. of Zoology, Univ. of Washington
  2830.  
  2831. I don't know the interface guidelines that well, but judging from other
  2832. products and my own stuff, there's absolutely no requirement that a
  2833. window have text in it.  I would guess the distinction between a window
  2834. and a modeless dialog box (in interface terms) is something like a
  2835. window should have some data in it, wheras a dialog box is just asking
  2836. for information from the user.  Since you have strip charts, that
  2837. sounds like information in a window.
  2838.  
  2839. In any case, a modeless dialog box is basically just a window without
  2840. certain bits like scroll bars and a grow box, so I wouldn't worry about
  2841. semantics too much and just use whatever works.
  2842.  
  2843. Hope that helps.
  2844.  
  2845. Eli Meir
  2846. Dept of Zoology, Univ of Washington
  2847. meir@zoology.washington.edu
  2848.  
  2849. +++++++++++++++++++++++++++
  2850.  
  2851. >From gurgle@apple.com (Pete Gontier)
  2852. Date: Tue, 02 Apr 1996 12:59:35 -0800
  2853. Organization: Apple Computer, Inc.
  2854.  
  2855. In article <4jmp83$1qd@nntp5.u.washington.edu>,
  2856. meir@zoology.washington.edu (Eli Meir) wrote:
  2857.  
  2858.  > ...there's absolutely no requirement that a window have text in it.
  2859.  
  2860. True so far.
  2861.  
  2862.  > I would guess the distinction between a window
  2863.  > and a modeless dialog box (in interface terms) is something like a
  2864.  > window should have some data in it, wheras a dialog box is just asking
  2865.  > for information from the user.
  2866.  
  2867. A dialog *is* a window. The technical difference is that the contents of a
  2868. dialog are managed by Dialog Manager. The human interface difference
  2869. should be nothing.
  2870.  
  2871. A *modal* dialog should block access to everything but itself. A
  2872. *moveable-modal* dialog should block access to everything in the host
  2873. application -- but allow itself to be dragged, allow switching to other
  2874. apps, etc.
  2875.  
  2876. - -
  2877.  
  2878.   Pete Gontier, Integer Poet, Apple Macintosh Developer Technical Support
  2879.  
  2880.   work      mail  <mailto:gurgle@apple.com>
  2881.   personal  mail  <mailto:gurgle@ccnet.com>
  2882.   personal  web   <http://www.ccnet.com/~gurgle>
  2883.   work      web   <http://dev.info.apple.com/dts.html>
  2884.  
  2885. +++++++++++++++++++++++++++
  2886.  
  2887. >From deirdre@sover.net (Deirdre)
  2888. Date: Sun, 07 Apr 1996 08:23:34 -0500
  2889. Organization: Not hardly
  2890.  
  2891. In article <gurgle-0204961259350001@gontpe.apple.com>, gurgle@apple.com
  2892. (Pete Gontier) wrote:
  2893.  
  2894. > A dialog *is* a window. The technical difference is that the contents of a
  2895. > dialog are managed by Dialog Manager. The human interface difference
  2896. > should be nothing.
  2897.  
  2898. Or, more specifically, a dialog has the complete structure of a window
  2899. plus added behavior that makes things like adding controls and editing
  2900. your stuff in a DITL versus putting it in via code easy.
  2901.  
  2902. If you need to do what you're (meaning the original poster) is doing and
  2903. you're new to programming, a Dialog is MUCH MUCH easier on you.
  2904.  
  2905. It even opens a color window instead of a b&w window if it needs to and can.
  2906.  
  2907. > A *modal* dialog should block access to everything but itself. A
  2908. > *moveable-modal* dialog should block access to everything in the host
  2909. > application -- but allow itself to be dragged, allow switching to other
  2910. > apps, etc.
  2911.  
  2912. Unless there's a pressing reason to use a modal, use a moveable modal.
  2913.  
  2914. For your first programming, you might prefer to use a modal in order to
  2915. learn, but I'd say you should make it a moveable modal as soon as you get
  2916. the hang of the modal dialog.
  2917.  
  2918. _Deirdre
  2919.  
  2920. http://wwww.sover.net/~deirdre
  2921.  
  2922. ---------------------------
  2923.  
  2924. >From ykanai@m.u-tokyo.ac.jp (Yoshimitsu Kanai)
  2925. Subject: [ANN] Macintosh C
  2926. Date: 8 Apr 1996 12:44:00 GMT
  2927. Organization: Univ. of Tokyo
  2928.  
  2929. Hi Warriors!
  2930.  
  2931. I received a good news from Mr.K. J. Bricknell that 
  2932. Macintosh C, an excellent guide for C programming
  2933. in CW and SC is now on WWW.
  2934. I believe this will be the most powerful tool for
  2935. Mac programming.
  2936.  
  2937. The following is his announcement.
  2938.  
  2939. **********************************************************************
  2940.  
  2941.           A NEW RESOURCE FOR MACINTOSH PROGRAMMING ENTHUSIASTS
  2942.  
  2943. CANBERRA, Australia -- April 5, 1996 -- The Alt.Sources.Mac archive
  2944. is pleased to announce the availability of MACINTOSH C, the first
  2945. online Macintosh programming text.  The book, targeted towards
  2946. beginning or intermediate Macintosh programmers, can be viewed online
  2947. using a WWW browser or downloaded via FTP and printed out using MS
  2948. Word.
  2949.  
  2950. "Macintosh C had its genesis in some detailed notes I compiled as I
  2951. taught myself to program the Macintosh in C", said the author.  "The
  2952. development of those notes into a full-blown manual represents an
  2953. attempt on my part to alleviate many of the difficulties faced by
  2954. other hobbyists setting out on the same journey."
  2955.  
  2956. MACINTOSH C covers all of the material which, in the opinion of the
  2957. author, a beginning hobbyist needs to address before writing his or 
  2958. her first serious application in C.  It includes chapters describing 
  2959. the system software, memory, resources, low-level and operating system
  2960. events, menus, windows, controls, dialogs and alerts, the Finder
  2961. interface, required Apple events, basic QuickDraw, color QuickDraw,
  2962. offscreen graphics worlds, pictures, cursors, icons, printing, files, 
  2963. scrap, TextEdit and text, lists and LDEFs, custom CDEFs and VBL tasks,
  2964. floating windows and custom WDEFs, code segmentation, notifications,
  2965. compatibility with the operating environment, coping with multiple 
  2966. monitors, and porting to the Power Macintosh.
  2967.  
  2968. "K. J. needed a home for the book and I was more than happy to provide
  2969. one", says Dave Nebinger, the Alt.Sources.Mac archivist.  "MACINTOSH C
  2970. takes the Alt.Sources.Mac archive to the next level, from a collection
  2971. of snippets and source code to an invaluable Mac programming
  2972. resource."
  2973.  
  2974. MACINTOSH C comprises a book and associated demonstration program
  2975. files. The demonstration files come complete with sources, headers,
  2976. and projects.
  2977.  
  2978. "I remember all to well what it was like learning C on my own" says
  2979. Ambrosia Software, Inc.'s Andrew Welch. "I'm excited about hosting the
  2980. Macintosh C site, because it is an excellent online resource for
  2981. budding Macintosh C programmers."
  2982.  
  2983. Two MS Word editions of the book are available:
  2984.  
  2985. *  The CodeWarrior Edition, for users of the Metrowerks CodeWarrior
  2986.    development system (also available online via WWW).
  2987.  
  2988. *  The THINK C Edition, for users of Symantec`s THINK C development
  2989.    system.
  2990.  
  2991. To examine the online version of MACINTOSH C, point your WWW browser 
  2992. at:
  2993.  
  2994.   <http://www.AmbrosiaSW.com/alt.sources.mac/>
  2995.  
  2996. then follow the MACINTOSH C link...
  2997.  
  2998. To download the MS Word editions and demos, you can download them via
  2999. the WWW pages or use the following URLs:
  3000.  
  3001.   For CodeWarrior users:
  3002.  
  3003. <ftp://ftp.AmbrosiaSW.com/pub/alt.sources.mac/macintosh-c/codewarrior-
  3004. word.sit.hqx>
  3005.  
  3006. <ftp://ftp.AmbrosiaSW.com/pub/alt.sources.mac/macintosh-c/codewarrior-
  3007. demos.sit.hqx>
  3008.  
  3009.   For Think C users:
  3010.  
  3011. <ftp://ftp.AmbrosiaSW.com/pub/alt.sources.mac/macintosh-c/thinkc-word.
  3012. sit.hqx>
  3013.  
  3014. <ftp://ftp.AmbrosiaSW.com/pub/alt.sources.mac/macintosh-c/thinkc-demos
  3015. sit.hqx>
  3016.  
  3017. **********************************************************************
  3018.  
  3019. The HTML version is best viewed with a "frames-capable" browser such 
  3020. as Netscape 2.0.
  3021.  
  3022. - ---------------------------------------------------
  3023. Yoshimitsu Kanai, MD. PhD.
  3024. Department of Anatomy and Cell Biology,
  3025. School of Medicine, University of Tokyo,
  3026. 7-3-1, Hongo, Bunkyo-ku, Tokyo 113 Japan
  3027.  
  3028. Tel:81-3-3812-2111 (ext. 3336)
  3029. Fax:81-3-5689-4856
  3030. e-mail: ykanai@m.u-tokyo.ac.jp
  3031. - ---------------------------------------------------
  3032.  
  3033. ---------------------------
  3034.  
  3035. >From schiltz@cs.ucdavis.edu (Michael Schiltz)
  3036. Subject: mac INIT loading order
  3037. Date: 2 Apr 1996 05:09:42 GMT
  3038. Organization: UCDavis Computer Science
  3039.  
  3040. how can you control the order in which an INIT loads.  I want to have my
  3041. INIT load ASAP.  any ideas?
  3042. Thanks in advance,
  3043. mike
  3044. schiltz@cs.ucdavis.edu
  3045.  
  3046. -- 
  3047. -Through the modem, past the router, over the firewall.. nothing but Net -
  3048.  
  3049. +++++++++++++++++++++++++++
  3050.  
  3051. >From Patrick.Stadelmann@etudiants.unine.ch (Patrick Stadelmann)
  3052. Date: Tue, 02 Apr 1996 15:33:12 +0200
  3053. Organization: University of Neuchatel
  3054.  
  3055. In article <schiltz-0104962111000001@reqd-010.ucdavis.edu>,
  3056. schiltz@cs.ucdavis.edu (Michael Schiltz) wrote:
  3057.  
  3058. > how can you control the order in which an INIT loads.  I want to have my
  3059. > INIT load ASAP.  any ideas?
  3060.  
  3061. The loading order is alphabetical, so you can try adding spaces in front
  3062. of the name. Another possibility is to change the type of your extension
  3063. from 'INIT' to 'scri' (these files load before the standard 'INIT' files)
  3064.  
  3065. Patrick
  3066.  
  3067. -- 
  3068. Patrick Stadelmann <Patrick.Stadelmann@etudiants.unine.ch>
  3069.  
  3070. +++++++++++++++++++++++++++
  3071.  
  3072. >From 75300.1001@compuserve.com (C.K. Haun)
  3073. Date: Wed, 03 Apr 1996 01:05:40 -0700
  3074. Organization: Ravenware Software
  3075.  
  3076. In article <Patrick.Stadelmann-0204961533120001@mac41imtt.unine.ch>,
  3077. Patrick.Stadelmann@etudiants.unine.ch (Patrick Stadelmann) wrote:
  3078.  
  3079. > In article <schiltz-0104962111000001@reqd-010.ucdavis.edu>,
  3080. > schiltz@cs.ucdavis.edu (Michael Schiltz) wrote:
  3081. > > how can you control the order in which an INIT loads.  I want to have my
  3082. > > INIT load ASAP.  any ideas?
  3083. > The loading order is alphabetical, so you can try adding spaces in front
  3084. > of the name. Another possibility is to change the type of your extension
  3085. > from 'INIT' to 'scri' (these files load before the standard 'INIT' files)
  3086.  
  3087. Yikes!  Be aware that if you were to do something as foolish as changing
  3088. your INIT type to 'scri' then you may not be able to do everything you
  3089. want to!
  3090. 'scri' is not a documented type for 3rd parties to use *because* the
  3091. system is not fully functinal at the time that 'scri's load.  What exactly
  3092. may or may not exist at that time is dependent on the machine and system
  3093. version.  
  3094. If you make no toolbox  calls, or stick to things like resource manager
  3095. and file manager calls you should be OK, but all bets are off in general
  3096. at 'scri' time.
  3097. C.K. Haun
  3098. Ravenware Software
  3099. 75300.1001@compuserve.com
  3100.                           The Mild Bunch
  3101. 1996 Royal Star 1300      1991 Voyager 1200       1990 Virago 750
  3102. 1993 Virago 535           1987 Reflex 225         <rent this space>
  3103.  
  3104. +++++++++++++++++++++++++++
  3105.  
  3106. >From zobkiw@triplesoft.com (Joe Zobkiw)
  3107. Date: Tue, 02 Apr 1996 17:18:09 -0500
  3108. Organization: TripleSoft Inc.
  3109.  
  3110. In article <schiltz-0104962111000001@reqd-010.ucdavis.edu>,
  3111. schiltz@cs.ucdavis.edu (Michael Schiltz) wrote:
  3112.  
  3113. >how can you control the order in which an INIT loads.  I want to have my
  3114. >INIT load ASAP.  any ideas?
  3115.  
  3116. Place it in the Extensions folder and name it so it sorts alphabetically
  3117. before all other system extensions.
  3118.  
  3119.  
  3120. Joe Zobkiw                       <mailto:zobkiw@triplesoft.com>
  3121. TripleSoft Inc.                    <http://www.triplesoft.com/>
  3122. PO Box 30774 Raleigh, NC 27622         (919) 872-0916 voice/fax
  3123. - -------------------------------------------------------------
  3124. Specializing in Macintosh Software Development & WWW Publishing
  3125. - -------------------------------------------------------------
  3126. Macintosh Programmers --> <http://www.triplesoft.com/fragment/>
  3127.  
  3128. +++++++++++++++++++++++++++
  3129.  
  3130. >From jeremyr@dcs.qmw.ac.uk (Jeremy Roussak)
  3131. Date: 9 Apr 1996 17:02:58 GMT
  3132. Organization: Queen Mary & Westfield College, London, England
  3133.  
  3134. In article <schiltz-0104962111000001@reqd-010.ucdavis.edu>
  3135. schiltz@cs.ucdavis.edu (Michael Schiltz) writes:
  3136.  
  3137. > how can you control the order in which an INIT loads.  I want to have my
  3138. > INIT load ASAP.  any ideas?
  3139.  
  3140. Put a null (or two) at the start of the name. INITs load in
  3141. alphabetical order. Extensions load first, then control panels, then
  3142. items in the System Folder itself (under system 7).
  3143.  
  3144. Jeremy
  3145.  
  3146. +++++++++++++++++++++++++++
  3147.  
  3148. >From zobkiw@triplesoft.com (Joe Zobkiw)
  3149. Date: Tue, 09 Apr 1996 21:33:11 -0400
  3150. Organization: TripleSoft Inc.
  3151.  
  3152. In article <4ke582$rua@epsilon.qmw.ac.uk>, jeremyr@dcs.qmw.ac.uk (Jeremy
  3153. Roussak) wrote:
  3154.  
  3155. >In article <schiltz-0104962111000001@reqd-010.ucdavis.edu>
  3156. >schiltz@cs.ucdavis.edu (Michael Schiltz) writes:
  3157. >
  3158. >> how can you control the order in which an INIT loads.  I want to have my
  3159. >> INIT load ASAP.  any ideas?
  3160. >
  3161. >Put a null (or two) at the start of the name. INITs load in
  3162. >alphabetical order. Extensions load first, then control panels, then
  3163. >items in the System Folder itself (under system 7).
  3164.  
  3165. No! I believe there is a problem with AppleShare/Personal File Sharing
  3166. with files that contain/start with null characters. I had to change this
  3167. behaviour in a control panel I wrote once. Jim Luther (JumpLong@aol.com)
  3168. may have a comment on this since I believe he is the one who told me about
  3169. it.
  3170.  
  3171. Just use spaces. Printable characters are always safe...except periods of
  3172. course :)
  3173.  
  3174.  
  3175. Joe Zobkiw                                     TripleSoft Inc.
  3176. <mailto:zobkiw@triplesoft.com>   PO Box 30774 Raleigh NC 27622
  3177. <http://www.triplesoft.com/>          (919) 872-0916 voice/fax
  3178.                                  
  3179. - - Macintosh Software Development and Internet Publishing ---
  3180.  
  3181. Macintosh Programmers -> <http://www.triplesoft.com/fragment/>
  3182.  
  3183. +++++++++++++++++++++++++++
  3184.  
  3185. >From gurgle@apple.com (Pete Gontier)
  3186. Date: Wed, 10 Apr 1996 14:32:42 -0800
  3187. Organization: Apple Computer, Inc.
  3188.  
  3189. In article <brians-0204960110360001@slip-46-7.ots.utexas.edu>,
  3190. brians@pbcomputing.com (Brian Stern) wrote:
  3191.  
  3192.  > INITs present in script system extension files
  3193.  > (filetype 'scri') load before ...
  3194.  
  3195. ...INIT resources in the System file itself, which load before...
  3196.  
  3197.  > ...INITs present in ... extension files...
  3198.  
  3199. - -
  3200.  
  3201.   Pete Gontier, Integer Poet, Apple Macintosh Developer Technical Support
  3202.  
  3203.   work      mail  <mailto:gurgle@apple.com>
  3204.   personal  mail  <mailto:gurgle@ccnet.com>
  3205.   personal  web   <http://www.ccnet.com/~gurgle>
  3206.   work      web   <http://dev.info.apple.com/dts.html>
  3207.  
  3208. ---------------------------
  3209.  
  3210. End of C.S.M.P. Digest
  3211. **********************
  3212.  
  3213.  
  3214.  
  3215.